函数式编程有什么好的开始文字?

我喜欢在我的舒适区之外学习语言,但是我很难find一个function语言的地方。 我听说“计算机程序结构与解释”有很多好的东西,但是几年前,当我试图通读这些东西的时候,它似乎在脑海中闪过。 我用书比网站做的更好,但是当我访问当地的书店时,LISP上的书看起来有点吓人。

那么什么是一个好的起点呢? 我的目标是能够在6个月左右的时间内使用函数式编程语言来解决简单的问题,并能够转向更高级的主题,识别何时使用function语言是正确的工具,并使用该语言在2 – 3年的时间内解决更多的问题。 我喜欢书中的例子,但也包括工作的挑战。 function语言是否存在这样的事情?

Little Schemer教授recursion非常好,阅读起来很有趣,很简单。

我也很喜欢The Scheme Programming Language,以便更广泛地介绍这门语言。

尝试真实的世界Haskell 。 它是免费的在线。

SICP是一本很棒的书。

这可能是我的偏见,但我认为ocaml很容易进入。 你可以select几种不同的风格,直到你完全舒适。 我发布了一大堆 Haskell和Ocaml参考书籍的链接 ,例子等等,看起来就像你的胡同。

如果你更喜欢Lisp,你可以尝试通过Lisp的99个问题 (你可以用任何语言来做),或者你可以看SICP写的人的讲座 。

进一步来说,获得“ 纯粹function数据结构 ”,因为它将进入核心的深层devise和考虑,你必须在function语言中考虑 – 它使用ML(ocaml派生自) 。

我真的推荐Paul Graham的“On Lisp”。

即使对函数式编程的初学者来说,它也是简洁而且非常可读的(就像我当时读的那样)。 它包含了很多很短的例子,每个例子都有助于理解一件事情。

我经常想读这本书:这只是包含我想要的其他(非function)语言的function,但从来没有得到的语言。 :-(这正是要学习它的书,总是易于理解,有时甚至是有趣的!

你可以在作者的网站免费得到它!

我真的很喜欢Thompson的“Haskell:函数式编程的工艺”,因为它的编写很好,Haskell允许比其他函数式语言更简单的开始,而且是完全纯粹的(不像Lisp或Scheme)。

由于有许多不同的函数式编程语言,所以很难推荐书籍。 但是如果你对Common Lisp感兴趣的话,最近我一直在阅读Peter Seibel的“Practical Common Lisp” ,你可以在网上免费下载,然后把你辛苦赚来的现金放在上面。 这是一个相当温柔的介绍,有很好的解释和大量的例子。 Seibel是一个伟大的作家(例如:读了Mac的故事 ),他很善于保持你的参与,这真的是SICP倒下的地方,我想。 它太干了! 尽pipe实用Common Lisp非常繁重,但实际上并没有什么挑战,尽pipe这些示例大多是为了让您继续工作和构build而已。

另一本好书,这一本以计划为导向的: 如何devise程序 。 ( 在线 )我没有太多时间阅读这本书,更像一个Lisper,而不是一个Schemer本人,但是写得很好,有很好的解释和例子,并且有很多练习要做。 计划人群似乎很受欢迎。

Schemers指南和相关软件 – 非常好的东西

http://www.schemers.com/tsg.html

检查函数式编程简介 。 它提供了一个不同的视angular。

我发现小小的Schemer是function性编程的绝佳入门。 它完全基于简单的,小型的例子,随着本书的发展而build立起来。

我从Jeffrey Ullman的元素ML编程中学到了很好的东西。 当标准ML,OCaml,F#和Haskell(似乎)更受欢迎时,它就失去了点。

我觉得Chris Okasaki的纯粹function数据结构值得一看。

FYI http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf

Haskell是初学者非常好的函数式编程语言。 有人问Haskell是否有很好的资源,所以我会指出你的位置。

如果你正在寻找一本关于函数式编程的好书,我会推荐Bruce J. Maclennan的“Functional Programming:Practice and Theory”。
然而,在阅读之前,你需要刷上你的“集合论”和“逻辑”。 它包括LISP,Haskell和其他语言的例子。

如果你有.NET的经验, Expert #F是好的。

F#是从OCaml派生的。 随着函数式语言的发展,Lisp更为纯粹。

实际的函数式编程 (在F#和C#中有例子)

我已经听说了关于Haskell函数式编程的好处,但是我也在亚马逊上find了这个函数式编程书籍的列表 ,这可能对您有所帮助。