Чтение символа без необходимости нажатия кнопки Enter

read-line а такжеread-char оба требуют нажатия клавиши Enter после ввода чего-либо. Есть ли какой-нибудь механизм в Common Lisp, который позволял бы программе продолжать работу сразу после нажатия любого отдельного символа, не требуя дополнительного шага нажатия Enter? I '

я пытаюсь создать быстрый, динамический интерфейс ввода текста для программы, чтобы пользователи могли быстро перемещаться и делать разные вещи, нажимая цифры или буквы, соответствующие экранным меню. Все дополнительные нажатия клавиши Enter серьезно прерывают рабочий процесс. Это также будет похоже на "г / п» тип допроса из подсказки, где просто нажимаешь "у" или "н" достаточно.

Я использую SBCL, если это имеет значение. Возможно, это зависит от реализации, так как я попробовал оба примера наэта страница и это не работает (мне все еще нужно нажать Enter); Вот'с первым:

(defun y-or-n ()
(clear-input *standard-input*)
(loop as dum = (format t "Y or N for yes or no: ")
    as c = (read-char)
    as q = (and (not (equal c #\n)) (not (equal c #\y)))
    when q do (format t "~%Need Y or N~%")
    unless q return (if (equal c #\y) 'yes 'no)))

Ответы на вопрос(2)

Ваш ответ на вопрос