Recientemente estaba escribiendo un pequeño script CLI que necesitaba leer repetidamente las fechas de la consola (se calculó el número de fechas para leer y podría ser diferente cada vez). Muestra el código Ruby para darle la idea:¿Forma idiomática de escribir el código de Clojure para leer líneas repetidamente desde la consola?
dates = x.times.collect { print "Enter date: "; Date.parse(gets.chomp) }
Sólo por el gusto de hacerlo, me escribió el guión en Clojure, y terminó utilizando un código bastante feo con swap!
y loop...recur
. Me pregunto cuál sería la forma más limpia de lograr el efecto deseado en Clojure. (Clojure tiene dotimes
, pero no retiene los valores devueltos por la evaluación del cuerpo ... como podría esperarse de un lenguaje que hace hincapié en la programación funcional pura.)
Excelente respuesta ... gracias por brindar tantas opciones. Creo que definiré una función de ayuda 'leer fecha 'y simplemente usar' (varias veces x fecha de lectura) '. Creo que el procesamiento posterior obligará a la evaluación antes de hacer cualquier otra cosa con la consola, por lo que 'doall' * probablemente * será innecesario, pero es genial tener eso en mi kit de herramientas y estoy seguro de que voy a encontrar posibilidades de usar eso mas tarde. –