在Lisp中获取多括号列表的第一个元素

-1 lisp list common-lisp

如果我有一个如下列表:

(((X)))
Run Code Online (Sandbox Code Playgroud)

我想得到正确X而不是得到括号

在LISP中,如果我这样做CAR,我仍然会得到括号.

有什么功能可以帮我吗?

Ren*_*nzo 5

在Common Lisp中,( some-value )是一个包含单个元素的列表some-value.

列表的经典图形表示显示,实际上单个值列表是指向" some-value和"的指针(对)和nil:

因此,car产生它的some-value同时cdr产生它nil.

那么,什么是该s表达的意思:((x))?如果你some-value在第一个例子中替换,(x)你就得到了这个.也就是说,这不是一个"多括号列表",而只是一个包含单个元素的列表,它本身就是一个包含单个元素的列表(换句话说,就是汽车是单元素列表的列表).这可以用图形方式显示,如下图所示:

所以这次要让x你必须使用car两次,写作(car (car list))(实际上这可以在Common-Lisp中缩写(caar list))(参见参考资料).

我留给你完成练习,画出对应的图表(((x))),并找到如何x从这个列表中提取.