使用Common LISP列表

hed*_*der 2 lisp common-lisp

我刚刚开始使用LISP,因为刚刚打开这本书,我只有两页.我试图了解什么是什么,什么是不可接受的fn调用.每次我尝试执行

(1 2 3 4)
Run Code Online (Sandbox Code Playgroud)

我得到一个非法的fn调用错误同样的

(cdr (1 2 3 4))
(first (1 2 3 4))
(a b c d)
Run Code Online (Sandbox Code Playgroud)

CL程序无法返回列表吗?我将如何使用这些功能或打印列表?如果重要的话,我正在使用SLIME实现.LISP与我以前合作的任何东西都非常不同,我想确保我从概念上得到它.

Jer*_*ock 5

如果要将列表用作常量,则需要引用列表.否则,系统将尝试1在参数上调用函数2 3 4,这将不起作用(请注意,函数调用与列表具有相同的语法).你的例子应该是:

'(1 2 3 4)
(cdr '(1 2 3 4))
(first '(1 2 3 4))
'(a b c d)
Run Code Online (Sandbox Code Playgroud)

  • 或明确创建一个列表,例如`(list 1 2 3 4)` (2认同)