<!-- title: 函数式复兴：代码重拥数学之美 -->
<!-- domain: programming -->

# 函数式复兴：当代码重新拥抱数学

## 本期概述

这是「优质 YouTube 内容精选」第 2 轮，聚焦 **programming（编程与开发）** 分类。本期我没有选择热门框架或 AI 编程工具，而是把目光投向一个看似冷门、实则正在悄然渗透整个工程界的方向——**类型系统与函数式编程**。

核心发现令人意外：当大语言模型让"写出能跑的代码"变得几乎零成本时，**怎样写出"不会出错"的代码**反而成了稀缺能力。而这套能力的底层语法，正是函数式编程（FP）与类型论在过去六十年沉淀下来的思想。从 Rust 的所有权系统、TypeScript 的类型推断，到 Swift 的代数数据类型、Scala 3 的给定实例（given/using），主流语言正在集体"向数学靠拢"。

本期精选的 6 个频道/系列，恰好构成了一条完整的认知阶梯：从 λ 演算的纯理论起点，到 Haskell 的纯粹实践，再到 Rust 的工程落地，最后到 Roc 这样的下一代实验。它们风格迥异——有大学教授的严谨、有 Computerphile 的科普趣味、有 Jon Gjengset 的硬核深潜、也有 Tsoding 的"为乐趣编程"。这种多样性本身，就是函数式思想生命力的最好证明。

## 为什么 2026 年值得重读函数式

在进入频道之前，有必要先说清这股"复兴"的时代逻辑，它决定了我们为什么应该花时间看这些内容：

- **AI 编程让"正确性"成为新瓶颈。** 当 Copilot 能瞬间生成几百行代码，调试和验证的成本反而上升。函数式编程的核心承诺——"让非法状态在编译期就无法表达"（make illegal states unrepresentable）——恰好是对抗 AI 代码不确定性的最佳武器。
- **并发复杂性呼唤纯函数。** 多核、分布式、异步成为常态后，可变状态带来的竞态条件越来越难调试。不可变数据 + 纯函数的范式，让并发推理变得可证明。
- **内存安全成为系统级刚需。** Rust 把类型系统从"帮编译器优化"升级为"在编译期消灭整类内存错误"，这正是类型论（affine type、ownership）的工程胜利。
- **类型即文档、即测试、即证明。** 随着"Propositions as Types"（命题即类型）思想的传播，越来越多工程师意识到，一个好的类型系统，本身就是最可靠的规格说明书。

```mermaid
graph TD
    A[λ演算 / 1958] -->|理论基础| B[Haskell / 纯函数式]
    B -->|实践验证| C[OCaml / Elm / Roc]
    B -->|思想渗透| D[主流语言借鉴]
    D --> D1[Rust 所有权类型]
    D --> D2[TypeScript 类型推断]
    D --> D3[Swift 代数数据类型]
    D --> D4[Scala 3 given/using]
    D1 --> E[2026: 类型系统成为正确性基础设施]
    C --> E
    style A fill:#f9f,stroke:#333
    style E fill:#bfb,stroke:#333,stroke-width:2px
```

## 频道/视频对比一览

| 频道 / 系列 | 核心领域 | 内容风格 | 单集时长 | 最适合人群 |
|---|---|---|---|---|
| Graham Hutton — Haskell 课程 | 纯函数式理论+实践 | 大学者课堂，严谨清晰 | 15–35 分钟 | 想系统入门 FP 的工程师 |
| Computerphile — λ演算/类型论 | 计算机科学理论 | 科普趣味，动画讲解 | 8–15 分钟 | 对"为什么"好奇的所有人 |
| Jon Gjengset — Crust of Rust | Rust 系统+类型工程 | 直播式深潜，硬核 | 1.5–3 小时 | 有基础的 Rustacean |
| Richard Feldman — Roc | 下一代函数式语言 | 访谈+设计哲思 | 40–90 分钟 | 语言设计爱好者 |
| Tsoding — Recreational Programming | 多语言实战，含 Haskell | 娱乐式 live coding | 1–4 小时 | 想看"真人编程"的探索者 |
| Zelenya — FP Tier List | 函数式语言横向比较 | 观点鲜明，节奏快 | 20–40 分钟 | 选型阶段的团队决策者 |

---

## 一、Graham Hutton —《Functional Programming in Haskell》

**频道**：[youtube.com/c/GrahamHuttonNotts](https://www.youtube.com/c/GrahamHuttonNotts) ｜ **播放列表**：[Functional Programming in Haskell](https://www.youtube.com/playlist?list=PLF1Z-APd9zK7usPMx3LGMZEHrECUGodd3)

Graham Hutton 是诺丁汉大学计算机科学教授，也是 Haskell 教材《Programming in Haskell》的作者。这套课程原本是为该校一年级本科生录制的入门课，却意外成为 YouTube 上被推荐最多的 FP 入门资源之一。它的可贵之处在于**把抽象的数学概念翻译成了可上手的代码练习**——从列表推导、高阶函数，讲到函子（Functor）、单子（Monad），每一步都配以可运行的 Haskell 例子。

**核心洞察**：Hutton 最擅长用"最简单的那一个例子"点亮一个概念。比如讲递归时，他只用 `factorial` 和 `length` 两个例子，就让你理解"模式匹配 + 递归基例"的通用结构。这种"少即是多"的教学哲学，本身就有温度。

**实用价值**：哪怕你从不打算写一行生产环境的 Haskell，这套课也会重塑你对"副作用"和"状态"的理解——而这种理解会立刻迁移到你日常的 TypeScript / Python 代码中。

**适合人群**：有任意一门语言基础、想真正理解函数式编程"为什么这样设计"的工程师。

## 二、Computerphile —《Lambda Calculus》《Type Theory》《Propositions as Types》

**频道**：[Computerphile](https://www.youtube.com/@Computerphile)（Brady 旗下科普矩阵，约 240 万订阅）

Computerphile 是计算机科学领域的顶级科普频道，而 Graham Hutton 与 Thorsten Altenkirch 两位教授在这里贡献了三支堪称"镇馆之宝"的短片：

- **[Lambda Calculus](https://www.youtube.com/watch?v=eis11j_iGMs)**（λ演算）：用纸笔推演讲解邱奇（Church）发明的这套最小计算模型，9 年前的视频至今累计数百万次观看。它是"几乎所有函数式编程的基础"。
- **[Computer Science ∩ Mathematics (Type Theory)](https://www.youtube.com/watch?v=qT8NyyRgLDQ)**：探讨当计算机越来越多地被用于验证数学证明时，类型论如何成为数学与计算的交汇点。
- **[Propositions as Types](https://www.youtube.com/watch?v=SknxggwRPzU)**：Altenkirch 讲解"命题即类型、证明即程序"——这被誉为计算机科学最深刻的同构之一，是理解 Coq、Lean、Idris 等证明助手的钥匙。

**核心洞察**：这些视频最打动人的，是把"冷冰冰的理论"讲出了故事感。你会突然意识到：原来编程语言的设计，背后是一百多年来数学家们对"什么是证明"的追问。

**实用价值**：每集仅 8–15 分钟，是通勤路上最好的"认知升级"材料。看完后再回去看 TypeScript 的泛型、Rust 的生命周期，会有豁然开朗之感。

**适合人群**：所有对计算机本质好奇的人，无需编程基础。

## 三、Jon Gjengset —《Crust of Rust》系列

**频道**：[youtube.com/c/JonGjengset](https://www.youtube.com/c/JonGjengset) ｜ **系列**：[Crust of Rust Playlist](https://www.youtube.com/playlist?list=PLqbS7AVVErFiWDOAVrPt7aYmnuuOLYvOa)

Jon Gjengset（GitHub: jonhoo）是 Helsing 的首席工程师、《Rust for Rustaceans》作者，也是 Rust 社区公认的"最有耐心的深潜者"。他的《Crust of Rust》系列专为"已过新手期、想真正搞懂 Rust 内核"的工程师设计，单集动辄两三个小时，逐行实现一个真实组件（如并发的 key-value 存储、迭代器、异步调度），边写边讲。

**核心洞察**：Jon 的教学有一种罕见的诚实——他会当着镜头的面卡壳、查文档、回退重构。这种"暴露思考过程"的直播式教学，远比事后剪辑的教程更有教学价值。你会看到一名顶尖工程师**如何在类型签名的引导下，一步步把正确性"逼"出来**。

**实用价值**：系列深度讲解了 Rust 类型系统如何用于工程——所有权（ownership）、生命周期（lifetime）、trait bound、`Send`/`Sync` 标记——本质上都是用类型系统在编译期消灭整类运行时错误。这对任何关注内存安全与并发的系统开发者都是教科书级示范。

**适合人群**：写过几个月 Rust、想从"能编译"跨越到"理解为什么这样写"的中级 Rustacean。

## 四、Richard Feldman — Roc 语言访谈与设计哲思

**相关视频**：[The Roc programming language with Richard Feldman](https://www.youtube.com/watch?v=l4wEz73XHE0) ｜ [Roc 官网](https://www.roc-lang.org/)

Richard Feldman 是《Elm in Action》作者、Roc 语言的创造者。Roc 是一门正在设计中的"快速、友好、函数式"语言，目标是把 Haskell/Elm 的纯函数式体验，与接近 C 的运行性能结合起来。在多个播客访谈中（如 *Rust in Production*、*Rock the JVM*），Feldman 系统阐述了他的语言设计哲学。

**核心洞察**：Feldman 反复强调一个原则——**"避免花哨，追求可预测"（avoiding fancy）**。他认为很多语言为了理论优雅牺牲了可读性，而 Roc 选择把"函数式的好"以最低的认知成本交付给普通应用开发者。这种"工程师视角的语言设计"，是函数式从象牙塔走向大众的关键一步。

**实用价值**：即使你不打算用 Roc，跟随一个语言从零设计的思考过程，本身就是顶级的设计训练——你会学到如何权衡性能、人体工学、类型安全这三个永恒张力。

**适合人群**：对编程语言设计、类型系统、编译器内部有兴趣的开发者。

## 五、Tsoding — Recreational Programming（娱乐式编程）

**频道**：[youtube.com/tsoding](https://www.youtube.com/tsoding) ｜ [Tsoding Daily](https://www.youtube.com/@tsodingdaily)

Tsoding（真名 Alexey Kutepov，亦称 rexim）是一位"娱乐式程序员"（recreational programmer）。他的频道标签虽写着"recreational"，却远不止娱乐——他长期 live coding 各类硬核项目：从用 Haskell 刷题（HaskellRank 系列）、用 C 手写库，到自研构建系统、自制游戏引擎。X-Team 的评价是："他的'recreational'标签低估了内容的教育价值。"

**核心洞察**：Tsoding 最有感染力的，是那种"纯粹为求知乐趣而编程"的态度。在 HaskellRank 系列里，你能看到他如何用函数式的思维把一道道算法题拆解成优雅的 pipeline。他的名言"你们别再光学语言了，开始学编程本身吧"（stop learning languages, start learning programming），点破了很多新手"囤语法而不练思维"的误区。

**实用价值**：如果你想看"函数式风格如何真正用于解题"，而不是停留在概念背诵，Tsoding 是最好的真人示范。

**适合人群**：想看高手如何真实编程、对多语言都感兴趣的探索型学习者。

## 六、Zelenya — Functional Programming Tier List

**相关视频**：[Ranking Functional Programming Languages](https://www.youtube.com/watch?v=vhIQZ0px-Lc) ｜ [配套文章](https://dev.to/zelenya/functional-programming-tier-list-4acl)

Zelenya 是专注于函数式编程普及的创作者。他的"FP Tier List"视频用游戏式的分级方式，把 Haskell、OCaml、Scala、F#、Elixir、Elm、Clojure、Roc 等语言按"学习价值 / 工作机会 / 生态成熟度"做了横向排名，观点鲜明、节奏明快。

**核心洞察**：这类分级最大的价值不是"标准答案"，而是**提供一个选型框架**。Zelenya 会坦率地说出每门语言的甜蜜点与痛点——例如 Haskell 适合学理论但岗位稀缺、Elixir 在并发 Web 场景无对手但类型支持仍在完善、OCaml 平衡了性能与人体工学。

**实用价值**：当你的团队需要为某个领域（如金融建模、分布式后端、前端）挑选函数式语言时，这份分级能帮你快速缩小候选范围，避免在错误的工具上浪费时间。

**适合人群**：处于技术选型阶段、需要横向比较的团队负责人与架构师。

---

## 本期知识图谱

```mermaid
graph LR
    subgraph 理论基石
        L[λ演算<br/>Computerphile]
        T[类型论<br/>Propositions as Types]
    end
    subgraph 纯函数式实践
        H[Haskell 课程<br/>Graham Hutton]
        Z[FP Tier List<br/>Zelenya]
    end
    subgraph 工程落地
        R[Crust of Rust<br/>Jon Gjengset]
        ROC[Roc 语言<br/>Richard Feldman]
    end
    subgraph 实战示范
        TS[Tsoding<br/>娱乐式编程]
    end
    L --> H
    T --> H
    H --> Z
    H --> R
    H --> ROC
    R --> TS
    H --> TS
    ROC -.下一代.-> R
    style L fill:#ffe,stroke:#996
    style T fill:#ffe,stroke:#996
    style R fill:#eef,stroke:#449
    style ROC fill:#efe,stroke:#494
```

这条认知路径可以这样走：先用 **Computerphile** 建立直觉 → 跟 **Graham Hutton** 系统学 Haskell → 用 **Zelenya** 的分级做选型 → 跟 **Jon Gjengset** 看 Rust 工程落地 → 关注 **Richard Feldman** 的 Roc 看未来 → 随时打开 **Tsoding** 看真人实战。

## 延伸推荐

- **Computerphile 完整 FP 播放列表**：[PLI7W4smIfuluNs6KoK0LS2e3aDNfJspMQ](https://www.youtube.com/playlist?list=PLI7W4smIfuluNs6KoK0LS2e3aDNfJspMQ)，涵盖 Y Combinator、惰性求值等主题。
- **Category Theory & Functional Programming**：[播放列表](https://www.youtube.com/playlist?list=PLe4mCoyEUhneunChQ40o4RumyZjKwmtP2)，把范畴论与 FP 结合讲解，适合想往更深处走的读者。
- **牛津大学 Lambda Calculus and Types 课程**：[cs.ox.ac.uk 课程页](https://www.cs.ox.ac.uk/teaching/courses/2025-2026/lambda/)，权威学术视角的类型论。
- **No Boilerplate**（YouTube）：与 Jon Gjengset 互补，主打一两分钟的高密度 Rust 短片，适合碎片时间。

## 结语

这期所选的 6 个频道，本质上在做同一件事：**用数学的严谨，对抗软件的复杂**。在一个代码可以被 AI 一键生成、但"为什么它是对的"却无人能答的时代，函数式编程与类型系统提供的，正是这种"可证明的正确性"。它们不再是少数极客的玩具，而是正在成为整个工程界的基础设施。

如果你只能从这期记住一句话，那应该是 Hutton 在 λ 演算视频里那朴素的开场：**计算，本质上是函数的求值**。从这个原点出发，你会发现整座编程语言的大厦，其实都建在同一个数学地基之上。

---

## 参考来源

1. [Graham Hutton — Functional Programming in Haskell（播放列表）](https://www.youtube.com/playlist?list=PLF1Z-APd9zK7usPMx3LGMZEHrECUGodd3) — 诺丁汉大学一年级 FP 入门课程。
2. [Computerphile — Lambda Calculus](https://www.youtube.com/watch?v=eis11j_iGMs) / [Type Theory](https://www.youtube.com/watch?v=qT8NyyRgLDQ) / [Propositions as Types](https://www.youtube.com/watch?v=SknxggwRPzU) — 计算机科学理论科普短片。
3. [Jon Gjengset — Crust of Rust 系列](https://www.youtube.com/playlist?list=PLqbS7AVVErFiWDOAVrPt7aYmnuuOLYvOa) — Rust 中级概念深潜直播。
4. [The Roc programming language with Richard Feldman](https://www.youtube.com/watch?v=l4wEz73XHE0) — 下一代函数式语言设计访谈。
5. [Tsoding 频道](https://www.youtube.com/tsoding) 与 [Zelenya — FP Tier List](https://dev.to/zelenya/functional-programming-tier-list-4acl) — 实战示范与语言横向选型。

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护，聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。
> 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
