54

我喜欢在我的舒适区之外学习语言,但我很难找到一个开始学习函数式语言的地方。我听说过很多关于计算机程序结构和解释的好东西,但是当我几年前试图通读它时,它似乎在我脑海中呼啸而过。与网站相比,我在书籍方面做得更好,但是当我访问当地的书店时,LISP 上的书籍看起来有点吓人。

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

4

15 回答 15

29

Little Schemer非常好地教授递归,而且它很有趣且易于阅读。

我还喜欢The Scheme Programming Language以更广泛地介绍该语言。

于 2008-08-22T18:52:28.230 回答
21

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

于 2008-08-23T01:29:15.623 回答
17

SICP 是一本很棒的书。

这可能是我的偏见,但我认为 ocaml 很容易进入。您可以选择以几种不同的风格进行编程,直到您完全适应为止。我发布了一堆指向 Haskell 和 Ocaml 参考文献的链接,这些都是书籍,其中的示例等等似乎就在你的小巷里。

如果您更喜欢 Lisp,您可以尝试解决 Lisp 中的 99 个问题(实际上,您可以用任何语言完成),或者您可以观看编写 SICP 的人的讲座。

再往前走,掌握“纯函数式数据结构”,因为它将进入核心的深层设计和你在函数式语言中必须考虑的考虑因素——它使用机器学习(ocaml 派生自) .

于 2008-08-22T18:56:54.897 回答
11

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

即使对于函数式编程的初学者(就像我阅读它时一样),它也很简洁且非常易读。它包含许多非常简短的示例,每个示例都有助于理解一件事。

我经常想读这本书:这只是一种语言,它包含了我在其他(非功能性)语言中想要但从未得到的特性。:-( 这正是学习它的书,总是可以理解的,有时甚至很有趣!

您可以在作者的网站上免费获得它!

于 2008-12-05T15:15:05.630 回答
5

我真的很喜欢 Thompson 的“Haskell:函数式编程的技巧”,因为它写得很好,而且 Haskell 比其他函数式语言更容易开始,同时完全纯粹(不像 Lisp 或 Scheme)。

于 2008-08-22T19:00:50.720 回答
5

由于有很多不同的函数式编程语言,因此很难推荐书籍。但是,如果您对 Common Lisp 感兴趣,最近我一直在阅读Peter Seibel 的“Practical Common Lisp”,您可以在网上免费查看,然后再投入辛苦赚来的钱。这是对 CL 的一个非常温和的介绍,有很好的解释和大量的例子。Seibel 是一位伟大的作家(例如:阅读Mac 的故事),他擅长让您保持参与,我认为这确实是 SICP 失败的地方。简直太干了!但是,虽然 Practical Common Lisp 非常多示例,但它并没有真正的挑战,尽管示例主要是为了让您继续工作并在它们之上构建。

另一本好书,这本面向方案的:如何设计程序。(在线)我没有太多时间看这本书,我自己更像是一个 Lisper 而不是一个 Schemer,但它写得很好,有很好的解释和例子,还有很多练习要做。它在 Scheme 人群中似乎很受欢迎。

于 2008-08-22T19:27:18.007 回答
5

计划者指南和相关软件 - 非常好的东西

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

于 2008-09-15T12:46:20.157 回答
5

查看函数式编程简介。它提供了不同的视角。

于 2009-02-16T07:04:15.980 回答
4

我发现The Little Schemer是对函数式编程的一个很好的介绍。它完全基于简单的、一口大小的示例,这些示例是随着本书的继续而建立的。

于 2008-08-22T18:54:53.683 回答
4

我从 Jeffrey Ullman 的Elements of ML Programming中学习到,非常好。当 OCaml、F# 和 Haskell(似乎)更受欢迎时,它会因为与标准 ML 相关而失分。

于 2008-08-22T19:28:49.187 回答
4

我觉得Chris Okasaki 的Purely Functional Data Structures值得一看。

仅供参考http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf

于 2008-10-12T21:42:17.230 回答
2

Haskell 是一种非常适合初学者的函数式编程语言。有人问过 Haskell 的好资源,所以我会指出你那里

如果您正在寻找一本关于函数式编程的好书,我会推荐 Bruce J. Maclennan 的《函数式编程:实践与理论》。
但是,在阅读之前,您需要复习一下您的集合论和逻辑。它包括 LISP、Haskell 和其他语言的示例。

于 2008-08-22T18:55:08.927 回答
1

如果您有 .NET 方面的经验,Expert #F很好。

F# 源自 OCaml。Lisp 在函数式语言中更加纯粹。

于 2008-08-22T18:55:31.653 回答
1

真实世界的函数式编程(带有 F# 和 C# 中的示例)

于 2010-08-30T15:38:35.363 回答
0

我听说过有关Haskell 函数式编程的好消息,但我还在亚马逊上找到了这个函数式编程书籍列表,可能对您有所帮助。

于 2008-08-22T18:58:47.903 回答