Почему SLIME выдает эти ошибки?

Поэтому в последнее время я пытаюсь выучить Лисп. К сожалению, ничего не работает - я следую это руководство по Common Lisp, но когда я попытался запустить (hello-world) во второй раз, вместо того, чтобы сделать то же самое, он выдал мне ошибку (которую я потерял, потому что не подумал ее сохранить) о том, как CL-USER> был неопределенная переменная. Я никогда не вводил CL-USER> в SLIME, но именно это и есть подсказка. Я перезапустил EMACS и SLIME (то есть закрыл окно) и перезапустил его. Однако при попытке использовать метод (load "name") я получил следующую ошибку:

Compiler warnings for "helloworld.cl" :
;   In an anonymous lambda form at position 43: Undeclared free variable CL-USER>
;   In an anonymous lambda form at position 52: Undeclared free variable CL-USER>
;   In an anonymous lambda form at position 58: Undeclared free variable ..\sOURCECODELISP\hELLOWORLD.CL
;   In an anonymous lambda form at position 161: Undeclared free variable CL-USER>
;   In an anonymous lambda form at position 278: Undeclared free variable CL-USER>
;   In an anonymous lambda form at position 389: Undeclared free variable CL-USER>
Read error between positions 441 and 450 in f:/Lispbox/helloworld.cl.; Evaluation aborted on #<SIMPLE-ERROR #x2100B925AD>.

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

РЕДАКТИРОВАТЬ: после его закрытия, перехода на следующие несколько занятий, а затем пребывания после школы проблема сохраняется, но теперь она просто жалуется, что CL-USER> не является определенной переменной.

К вашему сведению, я изначально пытался загрузить свой файл из ..\sourcecode\Lisp\helloworld.cl, потому что я сначала поместил его туда. Я забыл кавычки вокруг него, так что это могло вызвать проблему.


person Fund Monica's Lawsuit    schedule 15.01.2014    source источник
comment
Каково содержимое helloworld.cl?   -  person Rainer Joswig    schedule 15.01.2014
comment
Вы случайно не сохранили буфер REPL как helloworld.cl вместо буфера, в котором вы написали код?   -  person molbdnilo    schedule 15.01.2014
comment
@RainerJoswig IIRC это была простая функция «привет, мир», определенная следующим образом: (defun hello-world() (format t "Hello, ") (format t "World!")) потому что я хотел иметь в ней более 1 оператора.   -  person Fund Monica's Lawsuit    schedule 16.01.2014
comment
@molbdnilo Как мне проверить? Я, возможно, сделал это, потому что никогда раньше не использовал Emacs и все такое. Как бы я различал?   -  person Fund Monica's Lawsuit    schedule 16.01.2014
comment
Почему минус? Просто отрицать вопрос без объяснения причин бесполезно; лучше сообщить пользователю, как это исправить, или предложить редактирование. Имейте в виду, когда кто-то задает глупый вопрос, он часто только изучает тему - как я о лиспе, emacs и слизи. Вы поможете сайту, оставив отзыв. Конечно, не стесняйтесь по-прежнему минусовать, но хотя бы объясните это.   -  person Fund Monica's Lawsuit    schedule 16.01.2014
comment
@NickHartley Похоже, ты решил это. Отлично. Одновременное изучение Emacs и Slime и Lisp может иногда показаться слишком сложным. Тем не менее, оно того стоит.   -  person molbdnilo    schedule 16.01.2014
comment
@molbdnilo Я действительно это сделал, и это ТАК. К сожалению, теперь мне приходится вручную копаться во всем в буфере в поисках кода, который выполнился правильно. Вы знаете более простой способ сделать это?   -  person Fund Monica's Lawsuit    schedule 17.01.2014


Ответы (1)


Когда вы копировали код из интерактивного сеанса в файл helloworld.cl, вы должны были удалить подсказки и интерактивные сообщения.

person sds    schedule 15.01.2014
comment
Как бы я это сделал? Я раньше не использовал Emacs, и для таких, как я, этот ответ вообще не будет полезен. О, и я сохранял его через ключевой аккорд, а не копировал/вставлял код из окна. - person Fund Monica's Lawsuit; 16.01.2014
comment
Да, я попробую и вернусь к вам. РЕДАКТИРОВАТЬ: Это сработало! Есть ли способ скопировать только то, что я набрал, и то, что выполнено правильно? - person Fund Monica's Lawsuit; 16.01.2014