lisp中用setq给变量赋值,有一个写法:
(setq itm var itm (if itm itm 0))
其中var是前面取得的值,这里要给itm赋值
这一句怎样理解?请高人指教
谢谢您的答案
我想,这是一个简化写法
想知道它的完整写法是怎样的.
总觉得里面的if语句应该是:(if (null itm) (setq itm 0))
这样的话,我理解的if条件(null itm)和实际使用的条件itm就正好相反了
是的,他的写法是传统LISP写法,这是与别的语言的区别,也是写LISP的乐趣之一,以下提供完整写法,供参考:(setq itm var)(if (= itm nil)(setq itm 0)) 或者也可以写成(if (= var nil)(setq itm 0) (setq itm var))--------