Как красиво и коротко прочитать несколько чисел с консоли? - Lisp

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

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

Предположим надо как-то считать несколько чисел с консоли, таких что в каждой строке по числу в переменные. Как это сделать красиво и коротко ? Хотелось бы некоего подобия такого на питоне(читаем 3 числа одной строчкой):
Листинг программы
  1. a, b, c = map(int, [input() for _ in range(3)])
Так нагроможденно:
Листинг программы
  1. (setq a (with-input-from-string (in (read-line)) (read in)))
  2. (setq b (with-input-from-string (in (read-line)) (read in)))
  3. (setq c (with-input-from-string (in (read-line)) (read in)))
Уже лучше:
Листинг программы
  1. (setq
  2. a (with-input-from-string (in (read-line)) (read in))
  3. b (with-input-from-string (in (read-line)) (read in))
  4. c (with-input-from-string (in (read-line)) (read in)))
Все еще ощущается некоторая награможденность:
Листинг программы
  1. (defun read-int () (with-input-from-string (in (read-line)) (read in)))
  2. (setq
  3. a (read-int)
  4. b (read-int)
  5. c (read-int))
Тут меня мучают сомнения насчет eval:
Листинг программы
  1. (loop for x in '(a b c) do
  2. (eval (list 'setq e (with-input-from-string (in (read-line)) (read in)))))
Листинг программы
  1. (dolist (x '(a b c))
  2. (eval (list 'setq e (with-input-from-string (in (read-line)) (read in)))))
У кого какие будут варианты? (ANSI Common Lisp) P.S. И, да, переменные должны быть именованными, а не чтение списка что-то вроде:
Листинг программы
  1. (setq x (loop repeat 3 collect (with-input-from-string (in (read-line)) (read in))))

Решение задачи: «Как красиво и коротко прочитать несколько чисел с консоли?»

textual
Листинг программы
  1. (destructuring-bind (a b c) (loop repeat 3 collect (parse-integer (read-line *query-io*)))
  2.  ...)

Объяснение кода листинга программы

На каком языке программирования это написано?

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


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

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

6   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы