* (if (oddp 5) (progn (setf *xx* t) `ok) `allright)
OK
* (setf *xx* nil)
NIL
* *xx*
NIL
* (if (oddp 6) (progn (setf *xx* t) `ok) `allright)
ALLRIGHT
* *xx*
NIL
*
progn的目标是在某个语句前插入,如果这个语句得到了执行,那么插入的这个语句也会执行,并且先于这条语句执行
0[2] (if (oddp 5) (progn (setf *xx* 3) (setf *xx* (+ *xx* 2))) `allright)
5
0[2] (if (oddp 5) (progn (setf *xx* 3) (setf *xx* (+ *xx* 2))) `allright)
5
0[2] (if (oddp 5) (progn (setf *xx* 9) (setf *xx* (+ *xx* 2))) `allright)
11
0[2]