List Elisp:将列表分配给变量

List Elisp:将列表分配给变量,list,elisp,List,Elisp,我试图理解列表,但我不明白为什么第二个示例(如下)可以编译,而第一个没有编译 在这两个例子中,我们(试图)比较字符列表(?a?b?c)中的每个元素是否与?a相等,其思想是它返回(t nil nil)。这两个示例之间的唯一区别是,第二个示例不使用临时变量来保存列表) 我做错了什么?(我对照GNU文档检查了列表分配语法,没有发现任何错误…) 编辑:我的错误是不注意细节;正如Stefan指出的,编译时错误是由于括号位置错误造成的。很抱歉,如果你来这篇文章是想了解一些关于Elisp中列表的内容,那么很失

我试图理解列表,但我不明白为什么第二个示例(如下)可以编译,而第一个没有编译

在这两个例子中,我们(试图)比较字符列表(?a?b?c)中的每个元素是否与?a相等,其思想是它返回(t nil nil)。这两个示例之间的唯一区别是,第二个示例不使用临时变量来保存列表)

我做错了什么?(我对照GNU文档检查了列表分配语法,没有发现任何错误…)

编辑:我的错误是不注意细节;正如Stefan指出的,编译时错误是由于括号位置错误造成的。很抱歉,如果你来这篇文章是想了解一些关于Elisp中列表的内容,那么很失望

示例#1(未编译):

示例2:(正确编译和运行):


使用TAB键缩进代码。这将告诉您出了什么问题。

不仅仅用于声明变量,还用于初始化变量。所以使用它:
(让((char来比较?a)(char来列出“(?a?b?c)))
。使用
选项卡
键缩进你的代码。这会告诉你出了什么问题。谢谢,红脸,你能给我一个答案吗
(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))
(let (char-to-compare)
    (setq char-to-compare ?a)
    (mapcar (lambda(element) (char-equal element char-to-compare)) '(?a ?b ?c)))