What's a good beginning text on functional programming?
我喜欢学习舒适区以外的语言,但是我很难找到一个开始学习功能语言的地方。我听到了很多关于计算机程序结构和解释的好消息,但几年前当我试图读完它时,它似乎在我的头上嗡嗡作响。我在书籍方面做得比在网站上好,但是当我访问当地的书店时,Lisp上的书看起来有点吓人。
那么,什么是一个好的起点呢?我的目标是能够在6个月左右的时间内使用函数式编程语言来解决简单的问题,能够转移到更高级的主题,认识到函数式语言何时是工作的正确工具,并在2-3年内使用该语言来解决更多的问题。我喜欢书中有大量的例子,但也包括工作中的挑战。函数语言是否存在这样的东西?
这个小阴谋家教递归非常好,而且它很有趣,也很容易阅读。
我还喜欢Scheme编程语言,以便更广泛地介绍该语言。
试试现实世界中的哈斯克尔。在线免费。
SICP是一本好书。
这可能是我的偏见,但我认为OCAML很容易理解。你可以选择用几种不同的方式编程,直到你完全舒服为止。我发布了一系列链接到haskell和ocaml的参考资料,这些参考资料都是书,其中有一些例子和类似的东西,看起来就在你的胡同里。
如果你更喜欢Lisp,你可以尝试通过Lisp中的99个问题(你可以用任何语言做,真的),或者你可以看那些写SiCP的人的演讲。
更进一步,掌握"纯粹的功能性数据结构",因为它将进入硬核心的深度设计,以及在功能性语言中必须考虑的因素——它使用ML(ocaml派生自)。
我真的推荐保罗·格雷厄姆的"口齿不清"。
它简洁易读,即使对初学者来说也是如此(就像我读它时一样)。它包含了许多非常简短的例子,每一个都有助于理解一件事。
我经常想读这本书:这只是一种语言,它包含了我在其他(非功能性)语言中曾经想要的,但从未得到的特性。:这正是学习它的书,总是可以理解的,有时甚至有趣!
你可以在作者的网站上免费得到它!
查看功能编程简介。它提供了不同的视角。
Schemers指南和相关软件-非常好的东西
网址:http://www.schemers.com/tsg.html
因为有很多不同的函数式编程语言,所以很难推荐书。但是如果你对普通的口齿不清感兴趣,最近我读了彼得·塞贝尔的《实用的普通口齿不清》,你可以在网上免费查看,然后再把你辛苦赚来的钱放在上面。这是对cl的一个非常温和的介绍,有大量的解释和例子。塞贝尔是一位伟大的作家(例如:读一读麦克的故事),他很善于让你订婚,我认为这正是西普倒下的地方。只是太干了!但是,尽管实用的通用Lisp的示例很重,但它并没有真正的挑战,尽管这些示例主要是为了让您继续工作并在其基础上进行构建而设计的。
另一本好书,这本面向方案的书:如何设计程序。(在线)我对这本书没有那么多时间,我自己更像一个口齿不清的人,但它写得很好,有很好的解释和例子,还有很多练习要做。这在计划人群中似乎很流行。
我真的很喜欢汤普森的"haskell:函数式编程的技巧",因为它写得很好,而且haskell允许比其他函数式语言更容易启动,同时完全是纯的(不像lisp或scheme)。
我觉得ChrisOkasaki的纯功能数据结构值得一看。
仅供参考http://www.cs.cmu.edu/~rwh/thess/okasaki.pdf
我从JeffreyUllman的ML编程元素中学到了,这很好。当ocaml、f_和haskell(表面上)更受欢迎时,它就失去了标准ML的分数。
我发现这个小Schemer是一个非常好的函数式编程入门。它完全基于简单的、一口大小的例子,这些例子是随着书的继续而建立起来的。
Haskell对于初学者来说是一种非常好的函数式编程语言。有人问过哈斯克尔有什么好的资源,所以我会给你指出。
如果你想找一本关于函数式编程的好书,我推荐布鲁斯J.麦克伦南的《函数式编程:实践与理论》。然而,在阅读之前,你必须复习一下你的集合理论和逻辑。它包括Lisp、Haskell和其他语言的示例。
现实世界的函数编程(以f和c为例)
如果你有.NET的经验,专家F是很好的。
F来自OCAML。随着功能语言的发展,Lisp更加纯粹。
我听说过有关haskell函数式编程的好消息,但我也发现亚马逊的函数式编程书籍列表可能对您有所帮助。