Ошибка формата в Steel Bank Common Lisp в Slime Mode

Если я запускаю этот код

(формат t "~a" "привет, мир")

в стандартном REPL sbcl вывод «hello world», как и ожидалось. Однако, когда я пытаюсь запустить тот же код в режиме слизи в emacs, он выдает следующую ошибку:

eval: Аргумент неправильного типа: stringp, t

Что я здесь делаю неправильно?


person Krishnan Ravikumar    schedule 08.08.2013    source источник
comment
Вы уверены, что запускаете его в реплике SLIME? Ошибка возникает из-за Emacs Lisp (язык, на котором написан Emacs), а не из Common Lisp (SBCL), который, по вашим словам, вы используете. В Emacs Lisp также есть функция format, но ей нужно, чтобы первый аргумент был строкой.   -  person    schedule 08.08.2013


Ответы (1)


Это сообщение об ошибке Emacs, а не SBCL.

Вы передаете форму Emacs, а в Emacs Lisp функция format не принимает указатель потока в качестве первого аргумента:

format является встроенной функцией в `editfns.c'.

(формат STRING и остальные ОБЪЕКТЫ)

Отформатируйте строку из строки формата и аргументов. Первый аргумент — это строка управления форматом. Другие аргументы подставляются в него, чтобы сделать результат строкой.

person sds    schedule 08.08.2013