Я пытаюсь пройти «Маленький Лиспер» и уже сталкиваюсь с корягами в первой главе. Я относительно новичок в Emacs (что подпитывало мой интерес к изучению Lisp и clojure). Я загрузил приложение Mit-schem, и я работаю над упражнениями на Эдвине.Почему я получаю несвязанную ошибку для «атома»?
Пытаюсь:
(atom? (cons a l))
где находится атом и л список уже определен. Я получаю следующую ошибку:
;Unbound variable: atom?
Почему? У меня нет проблем с использованием «null»? функция. Я подумал «атом»? это внутренняя функция, проверяющая, является ли возвращаемое значение атомом.
Любые объяснения были бы очень признательны. Я все еще не настроил emacs для запуска схемы, и незначительные различия между всеми диалектами Lisp - это испытание моего терпения.
Схемы и Лиспы не совпадают, а схема не имеет предиката 'atom? '. Однако вы можете легко реализовать свои собственные: http://stackoverflow.com/questions/5404707/check-if-an-argument-is-a-list-or-an-atom –
Я видел эту нить, но я думаю, что я не понял его правильно. Я понимаю, что моя ошибка в том, что я пытаюсь работать с этими упражнениями в «Эдвине», который работает в режиме схемы. Можете ли вы рассказать мне о любом другом приложении, где я могу попробовать и использовать примеры для «Маленького Лиспера»? Должен ли я попробовать sbcl на emacs?Все еще работаю над тем, где define/defun/defn подходит :-) – Tavore
Вы можете попробовать [clisp] (http://www.clisp.org/), но вы также можете переключиться на схему. Доступен полный текст классической [Структура и интерпретация компьютерных программ] (http://mitpress.mit.edu/sicp/). –