Lisp 错误,表单中未定义运算符 X
Lisp error, undefined operator X in form
我对 lisp 比较陌生。我正在研究一个确定列表中是否存在单词的函数。
(defun is-word-in-list(x lst)
(cond ((null lst) NIL)
((not (equal (car lst) x))
(is-word-in-list(x (cdr lst))))
(t
t
)
)
)
我能够编译这段代码,但是当我尝试 运行 这个函数使用
is-word-in-list "hello" '(你好,为什么)
我收到一条错误消息
Error: Undefined operator X
in form (X (CDR LST))
.
我错过了什么?
递归调用中的括号太多。考虑以下因素:
(is-word-in-list (x (cdr lst)))
等同于 JavaScript 语法中的 isWordInList(x(cdr(lst)))
(is-word-in-list x (cdr lst))
等同于 JavaScript 语法中的 isWordInList(x, cdr(lst))
看出区别了吗?
我对 lisp 比较陌生。我正在研究一个确定列表中是否存在单词的函数。
(defun is-word-in-list(x lst)
(cond ((null lst) NIL)
((not (equal (car lst) x))
(is-word-in-list(x (cdr lst))))
(t
t
)
)
)
我能够编译这段代码,但是当我尝试 运行 这个函数使用 is-word-in-list "hello" '(你好,为什么) 我收到一条错误消息
Error: Undefined operator
X
in form(X (CDR LST))
.
我错过了什么?
递归调用中的括号太多。考虑以下因素:
(is-word-in-list (x (cdr lst)))
等同于 JavaScript 语法中的isWordInList(x(cdr(lst)))
(is-word-in-list x (cdr lst))
等同于 JavaScript 语法中的isWordInList(x, cdr(lst))
看出区别了吗?