素材阁

Clojure 速查

共 26 条 Clojure 基础语法与序列操作,涵盖基础语法、数据结构、序列操作、函数与宏、工具与 REPL。 支持搜索与分类筛选,点击即可复制。

基础语法

JVM 上的 Lisp,前缀表达式。

命令说明
定义变量
定义函数
局部绑定
条件表达式
注释

数据结构

不可变集合。

命令说明
向量(随机访问)
映射(关键字作键)
集合(去重)
列表(需引号防止求值)
关键字 / 字符串 / 数字 / 布尔

序列操作

函数式核心,惰性求值。

命令说明
映射
过滤
归约
线程优先宏 ->
线程最后宏 ->>
取前 n 个 / 丢弃前 n 个

函数与宏

一等函数与元编程。

命令说明
匿名函数
匿名函数简写(% 为参数)
把序列展开成参数
偏函数应用
定义宏(~ 反引用)

工具与 REPL

Leiningen / deps.edn。

命令说明
创建项目并进入 REPL
运行 / 测试
在 REPL 中引入命名空间
命名空间声明
打印(prn 输出可读形式)

使用说明

Clojure 速查:基础语法、数据结构、序列操作、函数与宏、工具与 REPL;支持搜索与分类筛选,点击即可复制。

  1. 按用途点分类:基础语法、数据结构、序列操作、函数与宏、工具与 REPL。
  2. 点「命令」列复制到 REPL 或源文件。
  3. 所有集合不可变,操作返回新集合;用 ->> 把数据在函数间串起来。
  4. REPL 用 (require ...) 引入命名空间后再调用。

常见问题

-> 和 ->> 有什么区别?
-> 把结果作为下一个表达式的第一个参数;->> 作为最后一个参数。按函数参数位置选择。
为什么 list 要加引号?
'(1 2 3) 中的引号阻止求值,否则会被当成函数调用。向量与映射不需要。
需要联网吗?
不需要,本地可用。

延伸阅读

相关工具