(lisp)函数式启蒙/ 从数学到 lambda1 / 10
01 COURSE · 课程0 / 10 完成
课程
  1. 01加法是函数把运算符放到前面
  2. 02套娃表达式里面先算,外面后算
  3. 03多个参数不必两两计算
  4. 04起名字用 define 把值收起来
  5. 05比大小 · 做选择if 也是一个表达式
  6. 06造一个函数lambda — 没名字的函数
  7. 07命名你的函数lambda + define = 自己造工具
  8. 08递归 — 自己调用自己AHA 时刻
  9. 09高阶函数把函数当数据用
  10. 10万物皆表达式回头看,你看到了什么
02 LESSON · 讲解 + 试一试把运算符放到前面
1

加法是函数

把运算符放到前面

在普通数学里我们写 1 + 2。在 Lisp 里写成 (+ 1 2)

这点小小的搬家,是整门语言的起点 —— 函数永远在前,数据跟在后+ 不再是符号,而是一个函数,我们在 调用 它,参数是 12

普通数学
1 + 2
Lisp
(+ 1 2)
试一下
点「运行」,下方会显示结果;右边的 AST 树也会同步画出代码的结构。

试试别的运算符,它们都遵循同一个规则:( 函数 参数 参数 ... )

试一下
试一下
试一下

为什么要这么写? —— 因为这样一切都是表达式,且都是同样的形状。后面你会发现:这种统一性带来惊人的威力。

🎯 挑战

算出 100 减 7。

挑战 · 改改看
把 `?` 换成数字。
03 REPL · 自由练习独立沙盒 · AST 树
示例:
⌘/Ctrl+Enter 也能运行
点上面的「运行」试试。
AST · 最近运行的代码长成什么树

运行任意一段代码,这里会出现它的 AST 树。

AST = Abstract Syntax Tree(抽象语法树)。 Lisp 的特别之处:代码本身就是树,这里看到的结构就是程序的本来面目。

状态等待运行进度0/10pure FPscheme-flavoredv1.0.0