在命令式编程与面向对象范式长期主导主流工程之后,函数式编程(Functional Programming, FP) 正以一种"静水流深"的方式重塑我们对软件系统的认知。它不是某个语言的噱头,而是一整套关于可计算性、副作用控制、组合性与并发正确性的数学思想。本期 Round 2 聚焦 programming 分类,刻意避开已覆盖的算法、编译器、数据库内核、操作系统、Rust、DDD 等方向,专攻一个被很多人"听说过、没真正学过"的硬核领域。
本轮核心发现有三:其一,纯函数式语言(Haskell)并非象牙塔,Tsoding 用 111 行手写 JSON 解析器证明了它"造轮子"的爽感;其二,BEAM 虚拟机(Elixir/Erlang)用 Actor 进程模型把并发从难题变成了默认能力,WhatsApp、Discord 的高并发故事皆源于此;其三,范畴论(Category Theory)不再是玄学,Bartosz Milewski 用程序员能听懂的语言,把 Functor/Monad 讲成了可操作的工程抽象。函数式编程的真正价值,不在于"少写几个 for 循环",而在于用类型与不可变性,把错误从运行时驱逐到编译时。
| 创作者/频道 | 方向 | 风格 | 代表内容 | 适合人群 |
|---|---|---|---|---|
| Tsoding (@Tsoding) | Haskell 实战 | Live coding 硬核 | 111 行手写 JSON 解析器 | 想动手造轮子的工程师 |
| Graham Hutton (@haskellhutt) | Haskell 学术 | 系统课程 | Programming in Haskell 全程 | 从零入门、追求严谨 |
| Bartosz Milewski | 范畴论 | 数学讲座 | Category Theory for Programmers | 想理解 FP 理论根基 |
| Saša Jurić | Elixir/BEAM | 演讲 | BEAM Concurrency in Action | 后端、高并发架构师 |
| José Valim | Elixir 生态 | 演讲/设计 | Livebook × AI × 并发 | 全栈、数据/AI 工程 |
| code_report | 函数式 + 算法 | 简洁精炼 | Haskell 与范畴论速览 | 算法竞技、刷题党 |
| GOTO Conferences | FP 通识 | 大会演讲 | Russ Olsen《FP in 40 Minutes》 | 想快速建立全局观 |
频道主页:https://www.youtube.com/@Tsoding | 订阅数:约 147K
Tsoding 是函数式圈子里少有的"反学院派"存在。他没有用晦涩的类型论开场,而是直接开 OBS 录屏,Twitch 直播里一行行手敲 Haskell。最出圈的视频之一是《JSON Parser 100% From Scratch in Haskell (only 111 lines)》——不依赖任何解析器组合子库,纯靠代数数据类型(ADT)和模式匹配,把 JSON 这种命令式语言里动辄几百行的状态机,压缩到了令人发指的 111 行。这背后是 FP 的核心红利:用数据建模问题,让函数声明式地消耗数据,编译器替你处理分支穷尽性。
另一个标志性系列是 HaskellRank,他用 Haskell 刷算法竞赛题(如 Magic Square),把列表推导、惰性求值、fold 家族玩得出神入化。近期还有《Making Music with Haskell From Scratch》,展示 FP 如何优雅地表达信号处理这类"天然函数式"的领域。实用价值:如果你想跳出"只读不动手"的 FP 学习陷阱,Tsoding 是最好的"陪练"——看他敲代码,比读十本教材更能理解Monad在真实代码里长什么样。适合人群:有命令式基础、渴望"用纯函数式语言真正造一个东西"的中级工程师。
频道主页:https://www.youtube.com/@haskellhutt | 订阅数:约数万(大学教学频道)
如果说 Tsoding 是"野路子实战派",那 Graham Hutton 就是"学院正规军"。他是英国诺丁汉大学教授,所著《Programming in Haskell》是全球最权威的 Haskell 入门教材之一,第二版被翻译成多国语言。频道几乎就是他把课堂教学搬上了 YouTube:从《Functional Programming in Haskell》(大一入门)到 2026 年 1 月开讲的《Advanced Functional Programming in Haskell》,节奏循序渐进、逻辑滴水不漏。
他的讲解有几条值得称道的主线:函数即数据变换管道、类型驱动设计、用证明而非测试建立信心。Hutton 擅长用最朴素的问题(如求和、排序、表达式求值)层层递进,引出高阶函数、fold 的普遍性、以及"函数式之美在于组合"这一核心命题。他著名的论断——"很多函数都可以由 fold 定义出来"——至今是 FP 教学的金句。实用价值:为你打下无懈可击的 FP 概念地基,让你之后看任何 Haskell 项目都不再被 Monad 唬住。适合人群:零基础但愿意下系统功夫、追求"知其然更知其所以然"的学习者。
代表播放列表:Category Theory for Programmers(西雅图 2016 全程录像)| A Crash Course in Category Theory
Bartosz Milewski 是物理学博士出身、曾在微软工作的资深 C++ 程序员,却以一己之力把范畴论(Category Theory)这门"数学家的数学"翻译给了程序员。他的《Category Theory for Programmers》系列(后又整理成免费在线书籍)被公认为 FP 理论入门的"圣经级"资源。他的名言点破了关键:范畴论之所以让程序员感到陌生,是因为"数学家举的例子全是数学对象,而程序员需要的是代码里的映射"。
他用 Haskell 和 C++ 双语对照,把 Functor(函子)、Applicative、Monad(单子)、Natural Transformation 这些把无数人劝退的概念,还原为"在上下文中映射"、"组合带副作用的计算"等可操作的工程直觉。在 ZuriHac 2023 的范畴论 Track 中,他进一步示范了这套抽象如何统一地描述类型、状态、并发。实用价值:一旦你看懂了"Monad 不过是自函子范畴上的幺半群",你就在抽象层面获得了语言无关的可迁移能力——无论日后写 Scala、F#、Rust 还是 TypeScript,都能一眼看穿库设计的数学骨架。适合人群:不满足于会用、想理解 FP"为什么这样设计"的进阶开发者。
mindmap
root((函数式编程))
纯函数与不可变性
无副作用
引用透明
易测试与并行
类型系统
代数数据类型 ADT
模式匹配与穷尽性
依赖类型 Idris/Lean
核心抽象
Functor 函子
Applicative
Monad 单子
数学根基
范畴论 Category Theory
Lambda演算
Curry-Howard同构
并发模型
BEAM Actor进程
不可变状态共享
STM 软件事务内存
代表作:BEAM Concurrency in Action(YOW! 2022)| 著有《Elixir in Action》
Saša Jurić 是 Elixir 社区最具思想深度的布道者之一。《Elixir in Action》一书之所以口碑极高,正因为他不只教语法,而是系统阐释了 BEAM 虚拟机的进程模型与 Erlang/OTP 的任其崩溃(Let It Crash)哲学。在他的演讲中,他反复强调一个反直觉的观点:传统并发编程让人痛苦,根源在于把"共享内存 + 锁"当成了默认方案;而 BEAM 用数以百万计的轻量级进程和消息传递,把并发问题降维成了"进程间通讯"。
他清晰区分了"并发(concurrency)"与"并行(parallelism)",并展示了 BEAM 的抢占式调度器如何在多核之间透明地分发这些进程,让开发者几乎不需要操心锁、竞态、死锁——这些在命令式世界里如影随形的梦魇。他常援引 WhatsApp、Discord 用 Erlang/Elixir 撑起海量长连接的真实案例。实用价值:如果你在做即时通讯、物联网、实时数据管道等"海量并发连接"系统,BEAM 的范式能让你用 1/10 的代码量和心智负担解决问题。适合人群:后端架构师、面临水平扩展与高并发瓶颈的工程团队。
代表作:Livebook & Elixir: Where AI, Web & Concurrency Meet(YOW! 大会)
José Valim 是 Elixir 语言的设计者,也是 Phoenix Web 框架与 Livebook 的核心推动者。他的演讲从不停留在语言特性,而是展示 Elixir 生态如何把 FP 的红利落地为产品级能力。在 Livebook & Elixir 这场演讲中,他演示了一个极具前瞻性的命题:Livebook(Elixir 版的交互式笔记本)如何把 AI 推理、Web 服务、并发数据处理缝合在同一个运行时里。
他阐释了 Elixir 基于 BEAM 的天然并发优势——每个请求、每个 AI 推理任务都可被建模为独立进程,互不阻塞;Nx(数值计算库)让 Elixir 能做可微编程与 GPU 推理;而 LiveView 则把"服务器端渲染 + WebSocket 推送"做到无需写一行 JS 即可构建富交互应用。这套组合拳让 Elixir 在 2026 年的 AI 应用浪潮中重新获得关注。实用价值:为"全栈 + 数据/AI"团队提供了一个用单一语言、单一人手就能覆盖前后端与机器学习推理的务实方案。适合人群:初创团队全栈工程师、希望用 FP 思维构建 AI 应用的开发者。
频道:code_report | 订阅数:约 62.5K
code_report 是一类稀缺的内容:它既硬核又极其高效。UP 主用 Haskell、C++ 等语言做算法与编程竞赛(如 LeetCode、Advent of Code、AtCoder)的解法精讲,单集通常 10 分钟内讲透一道题。在他解读范畴论的系列里(如《Category Theory for Programmers: Chapter 1》),他用极简的语言把范畴、对象、态射讲得明明白白,是入门 Bartosz 厚重讲座前最好的"前菜"。
他的价值在于函数式思维与算法竞技的交叉点:当你习惯了用 fold、map、filter、递归与不可变数据来表达算法,会发现很多"回溯""动态规划"在 FP 视角下变得异常清晰——状态不再被赋值污染,递归结构与数学归纳法同构。实用价值:把函数式抽象直接转化为刷题与面试的战斗力,适合想"边学边练"的实用主义者。适合人群:算法竞赛选手、求职面试备战者、喜欢高信息密度短视频的工程师。
代表演讲:Russ Olsen《Functional Programming in 40 Minutes》(GOTO 2024)| 频道:GOTO Conferences
GOTO Conferences 是全球顶级技术大会之一,频道沉淀了大量高质量演讲。Russ Olsen 这场 40 分钟的演讲,堪称"FP 最友好的入门全景图"。他没有教任何具体语言,而是站在思想史的高度,讲清楚一件事:函数式编程为什么会出现、它解决了命令式范式的什么痼疾、以及现代工程可以从中学到什么。
他强调了三个支柱——纯函数(相同输入永远产生相同输出)、不可变数据(数据一旦创建不再修改)、函数是一等公民(可被传递、组合、返回),并用生动的类比说明:函数式代码之所以"更可靠、更易并行、更易测试",是因为它消除了"隐式状态"这个 bug 的最大温床。Russ Olsen 本身是技术作家(《Functional Programming》《Eloquent Ruby》),叙事能力极强。实用价值:最适合作为团队内部"FP 为什么重要"的认知对齐材料,管理者与非技术同事也能听懂。适合人群:FP 完全新手、技术管理者、需要向团队布道函数式理念的人。
下图把七个频道/创作者串成一张完整的认知地图——从"为什么需要 FP"到"语言落地"再到"数学根基"与"并发延伸",读者可按自身阶段切入任一支线:
flowchart TD
A[命令式的痛点<br/>共享状态/副作用/锁] --> B[函数式三大支柱]
B --> B1[纯函数 Pure Function]
B --> B2[不可变数据 Immutability]
B --> B3[函数一等公民 First-class]
B1 & B2 & B3 --> C[两大语言阵营]
C --> C1[Haskell 纯函数阵营]
C --> C2[BEAM/Elixir 并发阵营]
C1 --> D1[Tsoding 实战造轮子]
C1 --> D2[Graham Hutton 系统课程]
C1 --> D3[code_report 算法竞技]
C2 --> D4[Saša Jurić 并发哲学]
C2 --> D5[José Valim AI+Web]
C1 -.抽象统一.-> E[范畴论根基]
E --> D6[Bartosz Milewski<br/>Functor/Monad/Category]
B --> F[全局认知]
F --> D7[Russ Olsen / GOTO<br/>FP in 40 Minutes]
style B fill:#fff3cd,stroke:#d39e00
style E fill:#d1ecf1,stroke:#0c5460
style C2 fill:#d4edda,stroke:#155724
回看这七个频道,它们其实回答了同一个问题:如何用更少的"运行时意外"换来更可靠的软件。纯函数让函数行为可预测,不可变性让并发安全免费,类型系统把错误前移到编译期,范畴论则提供了跨语言复用的抽象语法。无论你是手写解析器的 Tsoding 式极客,还是用 BEAM 撑起百万连接的架构师,函数式编程给的不是一种语言,而是一种"让复杂度显式化、可组合化"的思维方式。在 AI 与多核并发的 2026 年,这套思维比任何时候都更值钱。
本文由「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 等场景全覆盖。
