一本1.9MB的PDF,免费下载,配英文EPUB,还留了个GitHub入口专门收勘误——这大概是编程教材发布里最不张扬的一种方式。但翻开履历会发现,《Learn Programming with OCaml》不是心血来潮的新书,而是法国计算机教育用了十几年的经典教材,今天才第一次穿上英文外衣,免费送给全世界。

发布页信息极简:作者是巴黎萨克雷大学与CNRS的研究者Sylvain ConchonJean-Christophe Filliâtre,译者Urmila Nair,资助方OCaml Software Foundation,协议CC BY-SA 4.0。没有推荐语,没有目录截图,甚至没有一句"这本书讲了什么"。这种克制,某种程度上也是OCaml这门语言本身的写照——小众,不擅长自我推销。

十年前的法文课本,今天才有英文版

2014年9月,Eyrolles出版社出版法文原版《Apprendre à programmer avec OCaml: Algorithmes et structures de données》,430页,含100多个小程序和近200道练习题。这本书长期是法国精英工程院校计算机教学体系里的标配读物——ENS、Polytechnique这类学校一直把OCaml当入门语言用。

十一年后,英语世界才第一次拿到完整讲义。这不是新书上市,是旧书翻墙:法国人教了十几年的一门课,今天才第一次让英语读者看全。

内容架构:先写程序,再讲结构,最后拼算法

全书三部分十三章,顺序很清楚。第一部分靠十四个循序渐进的小程序带入门,闰年判断、蒙特卡洛方法、曼德博集合、埃拉托斯特尼筛法,还有简化版打砖块和N皇后。第二部分讲数据结构——数组、集合与字典、队列、图、并查集、拉链结构,并且刻意把命令式实现持久化(persistent)实现放在一起对比讲。第三部分是算法技巧:数论、动态规划与记忆化、排序、图算法。

三部分十三章:课程怎么排的 第一部分 · 语言基础 14个循序渐进的小程序,从闰年判断到N皇后 第二部分 · 数据结构 命令式实现 vs 持久化实现,对比着讲 第三部分 · 算法技巧 数论、动态规划、排序、图算法

命令式与持久化结构并排讲,是这本书区别于市面大多数算法教材的地方。大多数Python或Java的算法书只教一种思路——可变的、就地修改的那种。OCaml天生是函数式语言,持久化数据结构(修改后旧版本依然可用)是这门语言的本能玩法,不是额外知识点。这本书更像是"用函数式语言重新理解数据结构",而不只是一本OCaml语法手册。

这本书的体量 430 100+ 示例程序 200 道练习题 13

一个待核实的疑点

检索到的某PDF版本元数据显示编译日期是2026年2月,对应某次代码提交——比官网发布时间(2025年3月)还晚了近一年。这大概率是构建工具生成的时间戳异常,或者抓取工具留下的占位日期,不宜直接采信为"这本书还在持续更新到2026年"。

抛开这处疑点,开源协议本身确实意味着持续勘误是设计初衷。代码和文本都挂在GitHub上,读者发现错字可以直接提issue,这是纸质书时代做不到的更新方式。


谁会因为多了一本免费教材而受益

英语世界的OCaml学习者是最直接的受益人,尤其是此前被语言墙挡在门外的教育者——想用这本经典教材,只能先啃法语。高校算法课、函数式编程课的老师也多了一个能直接印发、二次编辑的合法选项,CC BY-SA 4.0允许这么干。

再往外一层,是Jane Street这类重度依赖OCaml的公司。它们长期缺的不是语言特性,是能上手写生产代码的人,而教材数量本身就是人才供给的上游变量。

语言的国际化,靠的从来不是语法优雅,是教材够不够多、够不够便宜。
  • 结论.OCaml Software Foundation出钱翻译一本十一年前的旧教材,本质是把"教育资源稀缺"当成了比"语言特性"更值得投资的短板。
  • 风险.能不能被高校课程大纲采纳、勘误速度跟不跟得上,现在都没有答案,开源发布只是起点。

Python生态里,入门书、算法书、专项书能摆满一个书架;函数式语言这边,拿得出手的英文教材屈指可数。《Real World OCaml》偏工程实践,这本新书偏算法与数据结构基础,两者刚好互补,但加起来也谈不上丰富。这才是函数式编程教育长期被忽视的真相——不是没人愿意学,是没人愿意先把入门的路铺好。

一本十一年前的法语课本,今天翻译成英文、免费开源,这件事安静得不像新闻。但它提醒了一件更大的事:一门语言想被更多人用,得先有人愿意花时间把最基础的那本书翻译出来,而不是指望大家自己啃文档。