Как красиво и коротко прочитать несколько чисел с консоли? - Lisp
Формулировка задачи:
Предположим надо как-то считать несколько чисел с консоли, таких что в каждой строке по числу в переменные. Как это сделать красиво и коротко ? Хотелось бы некоего подобия такого на питоне(читаем 3 числа одной строчкой):
Так нагроможденно:
Уже лучше:
Все еще ощущается некоторая награможденность:
Тут меня мучают сомнения насчет eval:
У кого какие будут варианты? (ANSI Common Lisp)
P.S. И, да, переменные должны быть именованными, а не чтение списка что-то вроде:
a, b, c = map(int, [input() for _ in range(3)])
(setq a (with-input-from-string (in (read-line)) (read in))) (setq b (with-input-from-string (in (read-line)) (read in))) (setq c (with-input-from-string (in (read-line)) (read in)))
(setq
a (with-input-from-string (in (read-line)) (read in))
b (with-input-from-string (in (read-line)) (read in))
c (with-input-from-string (in (read-line)) (read in)))(defun read-int () (with-input-from-string (in (read-line)) (read in)))
(setq
a (read-int)
b (read-int)
c (read-int))(loop for x in '(a b c) do
(eval (list 'setq e (with-input-from-string (in (read-line)) (read in)))))(dolist (x '(a b c))
(eval (list 'setq e (with-input-from-string (in (read-line)) (read in)))))(setq x (loop repeat 3 collect (with-input-from-string (in (read-line)) (read in))))
Решение задачи: «Как красиво и коротко прочитать несколько чисел с консоли?»
textual
Листинг программы
(destructuring-bind (a b c) (loop repeat 3 collect (parse-integer (read-line *query-io*))) ...)
Объяснение кода листинга программы
На каком языке программирования это написано?