OCaml 教程
OCaml 是一门兼具函数式、命令式与面向对象特性的工业级编程语言,拥有强大的静态类型系统和出色的模式匹配能力。本教程共 50 章,从零基础到项目实战,带你全面掌握 OCaml。
🟢 基础入门(第 1-10 章)
| 章节 |
标题 |
难度 |
| 01 |
OCaml 简介与开发环境搭建 |
🟢 |
| 02 |
基本类型与表达式 |
🟢 |
| 03 |
函数定义与调用 |
🟢 |
| 04 |
模式匹配 |
🟢 |
| 05 |
递归函数 |
🟢 |
| 06 |
列表操作 |
🟢 |
| 07 |
元组与记录类型 |
🟢 |
| 08 |
变体类型(Variant Types) |
🟢 |
| 09 |
引用与可变性 |
🟢 |
| 10 |
字符串与字符处理 |
🟢 |
🟡 进阶特性(第 11-20 章)
| 章节 |
标题 |
难度 |
| 11 |
模块系统基础 |
🟡 |
| 12 |
签名与抽象类型 |
🟡 |
| 13 |
函子(Functors) |
🟡 |
| 14 |
高阶函数 |
🟡 |
| 15 |
闭包与柯里化 |
🟡 |
| 16 |
异常处理 |
🟡 |
| 17 |
输入输出基础 |
🟡 |
| 18 |
文件操作 |
🟡 |
| 19 |
哈希表与数组 |
🟡 |
| 20 |
格式化输出 Format 模块 |
🟡 |
🔴 高级类型系统(第 21-30 章)
| 章节 |
标题 |
难度 |
| 21 |
多态与受限多态 |
🔴 |
| 22 |
GADTs(广义代数数据类型) |
🔴 |
| 23 |
对象与类(OOP) |
🔴 |
| 24 |
多态变体 |
🔴 |
| 25 |
高阶类型与类型构造器 |
🔴 |
| 26 |
一等模块(First-class Modules) |
🔴 |
| 27 |
类型推导深入 |
🔴 |
| 28 |
存在类型 |
🔴 |
| 29 |
依赖记录与对象 |
🔴 |
| 30 |
PPX 预处理器与扩展 |
🔴 |
🟡 工程与系统编程(第 31-38 章)
| 章节 |
标题 |
难度 |
| 31 |
opam 包管理器 |
🟡 |
| 32 |
Dune 构建系统 |
🟡 |
| 33 |
OCaml 编译器内部 |
🔴 |
| 34 |
内存模型与 GC |
🔴 |
| 35 |
C 语言互操作(FFI/ctypes) |
🔴 |
| 36 |
并发编程 Lwt/Async |
🔴 |
| 37 |
Effect Handlers(OCaml 5) |
🔴 |
| 38 |
多核并行 Domains(OCaml 5) |
🔴 |
🔴 项目实战(第 39-50 章)
| 章节 |
标题 |
难度 |
| 39 |
解析器组合子 |
🔴 |
| 40 |
编写一个解释器 |
🔴 |
| 41 |
Web 开发(Dream/Opium) |
🟡 |
| 42 |
CLI 工具开发 |
🟡 |
| 43 |
数据序列化(JSON/Protobuf) |
🟡 |
| 44 |
数据库操作(Caqti) |
🟡 |
| 45 |
测试框架 Alcotest/OUnit |
🟡 |
| 46 |
性能优化与 Benchmark |
🔴 |
| 47 |
分布式系统基础 |
🔴 |
| 48 |
形式验证与属性测试 |
🔴 |
| 49 |
编译器前端实践 |
🔴 |
| 50 |
完整项目:构建一个小型数据库 |
🔴 |
学习路线建议
第一阶段:基础(1-10) → 掌握 OCaml 语法核心
第二阶段:进阶(11-20) → 熟悉模块系统和常用工具
第三阶段:类型(21-30) → 深入理解 OCaml 类型系统
第四阶段:工程(31-38) → 掌握工具链和运行时
第五阶段:实战(39-50) → 独立完成完整项目
参考资源