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