由于我是elisp语言的新手,我为以下代码编写了elisp。
当我评估它时,它失败了。
echo区域显示错误“our-member:Invalid function :( quote a)”
另外,我对lisp语言的基本元素感到困惑。
是'a
不是obj还是列表?什么是列表定义,因为我没有在维基和谷歌上找到它。
(defun our-member(obj list)
(if (nil list)
nil
(if (eql (car list) obj)
list
(our-member obj (cdr list)))))
(our-member('a '(a b c)))
答案 0 :(得分:1)
Lisp中的函数调用看起来像(function arguments)
而不是(function (arguments))
。你会发现,后者试图将arguments
作为一个函数运行。
Emacs提供了出色的文档; Lisp的数据类型记录在http://www.gnu.org/software/emacs/manual/html_node/elisp/Lisp-Data-Types.html,但可能从更温和的介绍开始,也介绍了基本语法; https://www.gnu.org/software/emacs/manual/eintr.html