最近我寫了一個小小的CLI腳本,它需要反覆從控制檯讀取日期(要讀取的日期的數量已計算出來,並且每次都可能會有所不同)。示例Ruby代碼給你的想法:用於編寫Clojure代碼以反覆從控制檯讀取行的語言方式?
dates = x.times.collect { print "Enter date: "; Date.parse(gets.chomp) }
只爲它赫克,我寫劇本用Clojure,彼時使用一些比較難看的代碼swap!
和loop...recur
。我想知道在Clojure中達到預期效果的最簡潔的方法是什麼。 (Clojure中確實有dotimes
,但它不保留值從評估身體......因爲可能從強調純函數式編程語言可以預期返回。)
很好的答案......謝謝你提供這麼多選擇。我想我會定義一個'read-date'輔助函數,並簡單地使用'(反覆x讀取日期)'。我認爲隨後的處理將在我對控制檯做任何其他事情之前進行強制評估,所以'doall'可能*是不必要的,但是在我的工具包中這樣做很好,我相信我會找到使用的機會它後來。 – 2012-07-15 10:15:30