我遇到的问题是,当我创建一个打印列表某个部分的函数时,它会将其打印为NIL而不是实际的元素。
例如:
> (setf thelist '((a b) (c (d e f)) (g (h i)))
> (defun f1(list)
(print ( car (list))))
> (f1 thelist)
NIL
NIL
But this works:
> (car thelist)
(A B)
答案 0 :(得分:11)
你有:
(print (car (list)))
这是使用您的list
参数调用the list
function和不。 (list)
始终返回一个空列表。 (Common Lisp是一个“Lisp-2”,这意味着函数调用上下文中的list
在变量访问上下文中引用与list
不同的东西。)
要修复,请更改您要使用的代码:
(print (car list))
代替。