我喜欢在舒适区之外学习语言,但我很难找到一个可以开始使用函数式语言的地方.我听说过很多关于计算机程序的结构和解释的好东西,但是几年前我试图通读它时,它似乎只是在我脑海中徘徊.我的书比网站更好,但是当我访问当地的书店时,LISP上的书看起来有些可怕.
那么什么是一个好的起点?我的目标是能够使用函数式编程语言在6个月左右的时间内解决简单问题,并能够转向更高级的主题,识别何时函数式语言是正确的工具,并使用该语言在2 - 3年的过程中解决更多的问题.我喜欢那些在例子上很重要的书籍,但也包括要完成的挑战.功能语言是否存在这样的事情?
Little Schemer教授递归非常好,而且阅读起来既有趣又简单.
我还喜欢The Scheme Programming Language,以更广泛地介绍该语言.
试试真实世界Haskell.它是免费的在线.
SICP是一本很棒的书.
这可能是我的偏见,但我认为ocaml很容易进入.您可以选择以几种不同的风格进行编程,直到您完全舒服为止.我发布了一系列链接到Haskell和Ocaml引用的书籍,其中有一些例子,它们似乎就在你的小巷里.
如果您更喜欢Lisp,您可以尝试解决Lisp中的99个问题(您可以使用任何语言进行实际操作),或者您可以观看编写SICP的人员的讲座.
继续前进,获得" 纯功能数据结构 ",因为它将进入硬核深度设计和您必须在功能语言中考虑的考虑因素 - 它使用ML(从其衍生的ocaml) .
我真的推荐Paul Graham的"On Lisp".
即使对于函数式编程的初学者来说,它也简洁且易读(就像我读它时一样).它包含很多非常简短的例子,每个例子都有助于理解一件事.
我经常想读这本书:这只是包含我在其他(非功能)语言中想要的功能的语言,但从来没有.:-(这正是学习它的书,总是易于理解,有时甚至有趣!
您可以在作者的网站上免费获得它!
我非常喜欢Thompson的"Haskell:函数编程工艺",因为它编写得很好,而且Haskell比其他函数语言更容易启动,而且完全是纯粹的(不像Lisp或Scheme).
由于有许多不同的函数式编程语言,因此很难推荐书籍.但是如果你对Common Lisp感兴趣,最近我一直在阅读Peter Seibel的"Practical Common Lisp",你可以在网上免费查看,然后再把你辛苦赚来的现金放在上面.这是一个非常温和的CL介绍,有很多解释和大量的例子.Seibel是一位伟大的作家(例如:阅读Mac的故事),他擅长让你保持参与,这正是SICP倒下的地方,我想.它真是太干了!虽然Practical Common Lisp非常重要,但它并没有真正的挑战,尽管这些示例主要是为了让你继续工作并在它们上构建.
另一本好书,这一个面向方案:如何设计程序.(在线)我没有那么多时间阅读这本书,更多的是Lisper而不是Schemer本人,但它编写得很好,有很好的解释和例子,还有很多练习可供使用.它在计划人群中似乎很受欢迎.
Schemers Guide和相关软件 - 非常好的东西
http://www.schemers.com/tsg.html
查看函数式编程简介.它提供了不同的视角.