Как красиво и коротко прочитать несколько чисел с консоли? - 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*))) ...)
Объяснение кода листинга программы
На каком языке программирования это написано?
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д