Объяснение функций Lisp Coerce и Set - PullRequest
0 голосов
/ 19 января 2012

Я пытаюсь сделать это непосредственно для интерпретации:

(setf example (coerce "blablabla" 'list))

и отлично работает. Infact (car example) возвращает # \ b

но если я попробую это:

(defun myfun (string) ( (setf example (coerce string 'list))))

(myfun "blablabla") 

Я не понимаю то же самое!

Как я могу исправить?

1 Ответ

2 голосов
/ 20 января 2012

Удалите лишние скобки вокруг setf в defun:

(defun myfun (string)
  (setf example (coerce string 'list)))

Теперь вы получите то же самое.Обратите внимание, что внешние скобки имеют значение.В Лиспе он либо заключен в кавычки, либо должен быть вызовом функции.Если первый элемент, как в этом случае, является списком, он не может быть вызываемой функцией, поэтому возникает ошибка.

...