函数式编程的入门读物有哪些推荐?

54

我喜欢学习超出我的舒适领域的语言,但在函数式语言方面找到一个起点很困难。我听说过《计算机程序的构造和解释》,但几年前我试着阅读它时感觉有些吃力。我更擅长于通过书籍学习,但当我去当地书店时,LISP的书看起来有点可怕。

那么,有什么好的起点吗?我的目标是能够使用函数式编程语言在6个月左右内解决简单问题,并具备进一步学习高级主题,识别何时需要使用函数式语言作为工具,并在2-3年内使用该语言解决更多问题的能力。我喜欢重于示例但也包括挑战练习的书籍。这样的函数式语言书籍是否存在?


10
您当地的书店实际上有Lisp编程语言的书吗? - Brendan Foote
1
我上周去过一家计算机书店,那里有《Lisp之国》、《实用Common Lisp》和《SICP》... - Rainer Joswig
15个回答

29

21

17

SICP是一本很棒的书。

这可能是我的偏见,但我认为OCaml相当容易入门。您可以选择在几种不同的样式中编程,直到您完全熟练。我发布了一堆链接,介绍Haskell和Ocaml的参考书籍,其中包含适合您的示例等内容。

如果您喜欢Lisp,可以尝试通过Lisp的99个问题(实际上您可以使用任何语言完成),或者观看写SICP的人们的演讲

更深入地学习后,请获取《纯函数数据结构》,因为它将涉及功能性语言中必须考虑的重要设计和注意事项--它使用ML(其中ocaml来源于)。


我现在正在阅读SICP,但我不确定你所说的“Lagrange”是什么意思?在我手头的第二版平装本中,索引中对Lagrange唯一的参考是关于拉格朗日插值的这个脚注:http://www-mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#footnote_Temp_299 - okonomichiyaki
那部分是指SICM(经典力学的结构与解释),是我的错误。 - nlucaroni

11

我非常推荐保罗·格雷厄姆的《On Lisp》。

即使是函数式编程的初学者(就像我当时读它那样),这本书也很简洁且易懂。它包含许多非常简短的例子,每个例子都有助于理解一个单一的概念。

我经常想到阅读这本书:这仅仅是语言中包含的正是我在其他(非函数式)语言中所想要的特性,但从未得到过。 :-( 而这正是学习它的书籍,总是易于理解,有时甚至很有趣!

您可以在作者的网站免费获取该书!


5

5

我非常喜欢汤普森的《Haskell函数式编程艺术》,因为它写得很好,而且相比其他函数式语言,Haskell更容易入门,同时完全是纯函数式的(不像Lisp或Scheme)。


+1,这本书有很多优秀的练习题,因为它主要是一本教科书。解释和叙述也使这本书成为一个不错的选择。 - Mark Kegel

5

由于有许多不同的函数式编程语言,因此很难推荐书籍。但如果您对Common Lisp感兴趣,最近我一直在阅读Peter Seibel的"Practical Common Lisp",您可以在投入大量金钱之前免费在线查看。这是一个相当温和的CL介绍,具有很好的解释和大量示例。Seibel是一位优秀的作家(例如:阅读Mac的故事),他擅长让你保持参与感,这正是SICP失误的地方,我认为它太枯燥了!但是,虽然“实用Common Lisp”具有相当多的示例,但它并没有真正的挑战需要解决,尽管这些示例大多设计为让您继续工作和构建。

另一本不错的书,以Scheme为导向: 如何设计程序。(在线) 我没有花太多时间阅读这本书,因为我更喜欢Lisp而不是Scheme,但它写得很好,有很好的解释和示例,并且有很多练习。在Scheme领域似乎相当受欢迎。


5

4

4
我发现《小小计算机程序》是一本很好的函数式编程入门书籍。它完全基于简单易懂的例子,随着书的进展逐步加深。请看下面的内容:

我发现《小小计算机程序》是一本很好的函数式编程入门书籍。它完全基于简单易懂的例子,随着书的进展逐步加深。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接