vitalgg 发表于 2022-6-2 07:07:11

progn 图解,Lisp 基础知识图解系列.

本帖最后由 vitalgg 于 2022-6-2 08:00 编辑

progn
progn 的作用是将多个表达式集合到一起,形成一个大的表达式。

一些函数或操作符的参数为一个表达式,但是我们一个表达式表述不清楚时,可以用 progn 将多个表达式包裹,传递给函数或操作符。

如 while 的条件表达式,if 的 条件表达式以及真或假时的表达式。

while 或 if 需要知道的就是最后一个表达式的结果。

就跟别人向你借钱时一样,不管你前面说的多么天花乱坠、合情合理,别人只在乎最后的结果,借还是不借。

(while expr-condition
exprs
)
;; 以expr3 的求值结果为依据, T 继续 ,nil 跳出。

(while (progn expr1 expr2 expr3)
....
)

;; 示例
(setq i 0)
(while (progn (princ i)(princ "\n") (< i 10))
(princ "aaa\n")
(setq i (1+ i))
)

;; IF
(if expr-condtion
    exprs-true
    exprs-false
    )

(if (progn expr1 expr2 expr3);; 以expr3 的求值结果为依据, T 执行 expr-true ,nil 执行 expr-false。
    (progn expr-true...)
    (progn expr-false ...))






全文: https://gitee.com/atlisp/atlisp- ... B%E9%98%B6/lisp.org



页: [1]
查看完整版本: progn 图解,Lisp 基础知识图解系列.