Lobsters | 📄 原文链接 | 2026-11-07 收录

Clojure 精要:从不可变数据到协议,一张学习地图

来源:yogthos.net — 2026-11

📋 概述

yogthos 的 Clojure 入门长文,开篇就点明:Clojure 的难点不在语法(语法极简),而在于必须换一套解题方法。作者先给三个理由:不可变数据结构靠结构共享,让「每次改动等于复制」只付与改动等量的代价,从而可以孤立地推理局部代码;函数与数据分离,列表/向量/映射/集合只有一套通用操作,函数因此成为真正的复用单元,迭代器函数把边界与终止条件封装一次;纯函数加不可变共享状态让并行变简单,map 换 pmap 即可,STM 也只需要为写加锁。随后进入实践:集合字面量、特殊形式、fn 与 #() 匿名函数、defn、高阶函数、闭包、-> 线程化表达式、惰性序列、解构、命名空间、dynamic vars、多方法与协议,最后是 REPL 与 Java 互操作。

🔑 核心要点

💡 金句

在 Clojure 里,代码就是数据,数据就是代码。
← 返回 Lobsters 首页