我想向初学者宣传 OCaml,我正在寻找好的英文教程;不是您只听说过,而是您实际尝试过并发现有用...
7 回答
我非常喜欢用 Objective Caml 开发应用程序这本书——我想应该更新标题以反映“OCaml”的命名决定。它很旧,因此有点过时,但只有很小的方面——例如,它将流语法表示为属于核心语言,但现在它作为 Camlp4 扩展被外包。这本书出奇地完整,第 2、3 和 4 章已经有很多内容了。
这本书涵盖了一些系统编程,但如果读者对此感兴趣,我更愿意推荐单独的书Unix system programming in OCaml——也是由社区努力翻译成英文的。
最后,如果想发现 OCaml 的理论基础,如果发现 U3 书,使用、理解和解开 OCaml 语言是一个很好的资源。但这仅适用于已经了解 OCaml 的读者。
PS:我对Jason Hickey对Objective Caml的介绍也有很好的看法,但我不能说我读过完整,只是看了一眼。这就是“初学者”书籍的问题,你最多只能读一本好书。
对我来说,首要的是:
$ apt-cache show ocaml-book-en
Package: ocaml-book-en
Source: ocaml-book
Version: 1.0-5
Installed-Size: 7061
Maintainer: Debian QA Group <packages@qa.debian.org>
Architecture: all
Recommends: www-browser | pdf-viewer
Description-en: English book: "Developing applications with Objective Caml"
This is the English translation of the O'Reilly's OCaml French
book "Developpement d'applications avec Objective Caml" that can
be found in the ocaml-book-fr package.
.
This package contains both the HTML and PDF version of the book.
:)
这里还有一本很棒的 OCaml 系统编程书籍和食谱风格的资源。
我在学习时使用的教程,也是我一直向初学者推荐的教程 - ocaml-tutorial.org(在 ocamlcore 镜像,因为原始站点已关闭)。
这是一本面向编程新手的书,也适用于那些了解一些编程但想在面向函数的范式中学习编程的人,或者那些只是想学习 OCaml 的人。
Nicolas Monje 创建了How to Think Like a Computer Scientist 一书的OCaml 端口。
根据官网的说法,应该下载这本书的PDF版本
从书中:
本书的目标是教你像计算机科学家一样思考。这种思维方式结合了数学、工程和自然科学的一些最佳特征。像数学家一样,计算机科学家使用形式语言来表示想法(特别是计算)。像工程师一样,他们设计事物,将组件组装成系统并评估备选方案之间的权衡。像科学家一样,他们观察复杂系统的行为、形成假设并检验预测。
计算机科学家最重要的一项技能就是解决问题。解决问题意味着提出问题、创造性地思考解决方案以及清晰准确地表达解决方案的能力。事实证明,学习编程的过程是练习解决问题能力的绝佳机会。这就是为什么本章被称为“程序之道”的原因。</p>
在一个层面上,您将学习编程,这本身就是一项有用的技能。在另一个层面上,您将使用编程作为达到目的的手段。随着我们的前进,那个结局会变得更加清晰。
我认为 Jason Hickey 的 Objective Caml 简介非常好(关于我读过的语言的唯一实际文本,以及我是如何开始的)。INRIA 的文档也不错;一旦你掌握了它的窍门,自己阅读模块签名是很有启发性的;)
信不信由你,OCaml 是我(真正)学习的第一门语言。
Jason Hickey的新书《Real World OCaml》即将出版。网站上有免费的公开测试版。尽管这本书还没有完成,但我没有发现任何重大错误或无关紧要的地方。
它让我对 OCaml 有了全面的了解。它包含许多说明概念的示例,可以很容易地将其视为教程。我也喜欢它部分涵盖了标准模块(List
, ListLabels
, Map
, Sys
, String
, 可能是其他一些模块)。
本书中的“运行时系统”部分非常有用。它提供了有关编译器实现、内存管理、与外国代码的链接、语言成本直觉的详细信息。我认为后者非常重要,因为许多函数式编程书籍都涵盖了概念,但没有说明它们在内存和时间方面的成本。强烈推荐这本书,尤其是当有免费的在线版本时。