Idiomatyczny sposób na napisanie kodu Clojure do wielokrotnego czytania linii z konsoli?
Ostatnio pisałem mały skrypt CLI, który musiał wielokrotnie czytać daty z konsoli (liczba dat do odczytania była obliczana i może być różna za każdym razem). Przykład kodu Ruby, aby dać Ci pomysł:
dates = x.times.collect { print "Enter date: "; Date.parse(gets.chomp) }
Do cholery, napisałem skrypt w Clojure i skończyłem używając jakiegoś brzydkiego kodu zswap!
iloop...recur
. Zastanawiam się, jaki byłby najczystszy sposób osiągnięcia pożądanego efektu w Clojure. (Clojure madotimes
, ale nie zachowuje wartości zwróconych przez ewaluację ciała ... jak można się spodziewać po języku, który podkreśla czyste programowanie funkcjonalne.)