我试图理解列表,并且为什么第二个例子(下面)编译但第一个例子没有编译而感到困惑。
在这两个例子中,我们(尝试)比较字符列表中的每个元素(?a?b?c)是否与?a相等,并且想法是它返回(t nil nil)。两个示例之间的唯一区别是第二个示例不使用临时变量来保存列表。
我做错了什么? (我检查了我的列表赋值语法对GNU文档,我没有看到任何错误...)
编辑:我的错误是没注意细节;正如Stefan指出的那样,编译时错误是由于错误位置的括号。很抱歉让您失望,如果您来到这篇文章,希望了解Elisp中的列表。示例#1(不编译):
(let (char-to-compare, char-list)
(setq char-to-compare ?a)
(setq char-list '(?a ?b ?c))
(mapcar (lambda(element) (char-equal element char-to-compare)) char-list))
示例#2 :(编译并正确运行):
(let (char-to-compare)
(setq char-to-compare ?a)
(mapcar (lambda(element) (char-equal element char-to-compare)) '(?a ?b ?c)))
答案 0 :(得分:1)
使用TAB键缩进代码。这会告诉你什么是错的。