Идиоматический способ написания кода Clojure для многократного чтения строк из консоли?
Недавно я писал небольшой сценарий CLI, который должен был многократно читать даты с консоли (количество дат для чтения рассчитывалось и могло каждый раз отличаться). Пример кода Ruby, чтобы дать вам идею:
dates = x.times.collect { print "Enter date: "; Date.parse(gets.chomp) }
Просто, черт возьми, я написал сценарий на языке Clojure и в итоге использовал довольно уродливый код сswap!
а такжеloop...recur
, Мне интересно, каким будет самый чистый способ достижения желаемого эффекта в Clojure. (Clojure имеетdotimes
, но он не сохраняет значения, возвращаемые при оценке тела ... как и следовало ожидать от языка, который подчеркивает чисто функциональное программирование.)