本帖最后由 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
|