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) → 独立完成完整项目
参考资源