我在lisp中编写一个函数,但我没有得到结果。 该函数用于计算表达式中的原子数。
(defun count-atoms(exp)
'Return the total number of non-nil atoms in the expression'
(cond((null exp) 0)
((atom exp) 1)
( t (+ (count-atoms (first exp))
(count-atoms (rest exp))))))
当我在clisp中运行时,我得到的只是以下结果。
[3]> (count-atoms '(a b c))
(COND ((NULL EXP) 0) ((ATOM EXP) 1)
(T (+ (COUNT-ATOMS (FIRST EXP)) (COUNT-ATOMS (REST EXP)))))
有人可以帮忙吗?
答案 0 :(得分:2)
我很惊讶你得到了一个结果。我收到一个错误:
*** - PROGN: variable THE has no value
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead of THE.
STORE-VALUE :R2 Input a new value for THE.
ABORT :R3 Abort main loop
原因是Common Lisp中的字符串必须是双引号:"Return ..."
。单引号仅用于防止评估。