Lisp如果不是零

时间:2016-04-08 16:27:52

标签: if-statement null lisp

我很抱歉不得不提出这个问题,但我试图做一个简单的if语句,检查变量是否为nil

(defun test (input)
  (let ((testvar (first input)))
   (if (not nil testvar)
    (do this)
    (do that))))

有人能向我解释正确的语法吗?

2 个答案:

答案 0 :(得分:1)

您想检查变量是否为零或是否为零?

不是nil:(if v ... ...)

对于nil:(if (not v) ... ...)

(在CL中)有许多变体在逻辑上都相同但可能更好地表明意图:(if (null v) ... ...)如果与上面第二种情况相同但可能向读者表明你正在寻找`() '而不是逻辑错误(即空列表)。还有很多其他的变化。

答案 1 :(得分:0)

jkiiski是对的:

Just(if(not testvar)...)。或者将真正的分支放在第一位并做(如果是testvar ......)