Странное поведение SBCL - Lisp

Узнай цену своей работы

Формулировка задачи:

Заметил странность. Допустим есть код
(defun test ()
   (format t "Enter a ")
      (let ((a (read)))
         (format t "Enter b ")
            (let ((b (read)))
               (format  t "~A ~A" a  b))))
При выполнении в среде slime+emacs получаю ожидаемый вывод: CL-USER> (test) Enter a Вася Enter b Петя ВАСЯ ПЕТЯ NIL Тот же код при вызове sbcl из консоли ведёт себя не так. Приглашение к вводу не появляется, вместо этого sbcl сначала ждёт ввода переменных, а потом выводит текст. Т.е. получается следующее: * (test) Вася Петя Enter a Enter b ВАСЯ ПЕТЯ NIL Это косяк SBCL или я чего то не понимаю? ЗЫ ОС -- ubuntu если вдруг это важно.

Решение задачи: «Странное поведение SBCL»

textual
Листинг программы
(defun test ()
  (let* ((dummy (format t "Enter a "))
          (a (read))
          (dummy (format t "Enter b "))
          (b (read)))
       (format  t "~A ~A" a  b)))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5