2017-02-02 3 views
0

Почему следующий код возвращает значение nil вместо 1?Nil Value From Lisp Function

(defun test (list) 
        (car(list))) 

(test '(1 2 3)) 
+1

Какова ценность '(list')? Какова ценность '(car (list))'? –

+0

Я пытаюсь заставить функцию взять ЦАР списка, предоставленного ему –

ответ

2

возвращает nil, потому что вы спрашиваете, что car из (list) есть, которая является функцией вызова функции list. Поскольку вы передаете функцию list без аргументов, она возвращает nil, так как нет car или cdr (это пустой список). Следующее обеспечило бы желаемый эффект:

(defun test (list) 
    (car list)) 
(test '(1 2 3)) ;; now returns 1