(progn
....
....
)
是将里边的无数个语句当成一句,通常用于(IF <条件> 真 假)的时候,如果根据条件要进行处理的语句不只一条的时候必须将它们用(progn )括起来,这样就成了
(IF <条件>
(progn
条件为真时处理语句1
条件为真时处理语句2
.....
条件为真时处理语句n
)
(progn
条件为假时处理语句1
条件为假时处理语句2
.....
条件为假时处理语句n
)
)
当处理语句只有一句的时候就可以不用PROGN
楼上说的对 为了便于楼主理解 举例说明:
1+2*3 (1+2)*3
progn的作用相当于上面的表达式里的括号
当我们希望LISP把多条语句当做一条的时候,要用(progn …(语句一) (语句二) (语句三)…)
如F函数的例子,IF函数的格式是
(IF (表达式) (do something)(do something))
两个do something 都只能是一条语句 当我们有多条语句要执行的时候要用PROGN把他们合成一条,否则会出错。