Steve1:
是的,你的麻烦制造者代码被“包装”在一个progn中,但我说的是它里面的if语句,注释的那个;这包含3个不同的语句(颜色不同),因此它绝对需要一个尖头,否则会引发错误。
-
- (if (= "TEXT" (cdr(assoc 0 enlist)))
- ([color=red][b]progn[/b][/color]
- [color=blue] (setq enlist (subst (cons 72 1) (assoc 72 enlist) enlist) ; vertical align - middle = 1
- enlist (subst (cons 73 2) (assoc 73 enlist) enlist) ; horizontal align - center = 2
- enlist (subst (cons 7 "ISOCP") (assoc 7 enlist) enlist) ; text style
- enlist (subst (cons 40 300) (assoc 40 enlist) enlist)) ; text height[/color]
- [color=darkorange] (entmod enlist)[/color]
- [color=green] (entupd en)[/color]
- )
- ) ; end if
如果If只包含两条语句,这不会引发错误,但是,如果没有用progn“包装”,第二条语句将仅在满足else条件时执行;参见上述示例:
1.
- (if a
- (setq b 1) ; <-- b will have value only if a is true
- (setq c 2) ; <-- c will have value only if a is nil
- )
- (if a
- (progn
- (setq b 1) ; <-- both b and c will have value if a is true
- (setq c 2)
- )
- )
在这两种情况下,求值都将返回“4”,但如果未涉及progn,则会引发错误-即它需要1个参数,2个给定:
|