Разбить список на пять списков: - Lisp
Формулировка задачи:
Здраствуйте очень нужна помощь в написании програмы: Разбить список на пять списков: первый список содержит все целые числа входного списка, второй - все действительные числа, третий - все строчные константы, четвертый - все символы входного списка, пятый - все что неввошло в первые четыре. Список должен задаваться с командной строки.
Решение задачи: «Разбить список на пять списков:»
textual
Листинг программы
(defun arrange ()
(loop for a in (read)
if (integerp a) collect a into integers
else if (realp a) collect a into reals
else if (stringp a) collect a into strings
else if (symbolp a) collect a into symbols
else collect a into other
finally (return (list integers
reals
strings
symbols
other))))
> (arrange)
(1 "e" 2.3 3/4 10 20 dot '(a))
((1 10 20) (2.3 3/4) ("e") (DOT) ('(A)))