Я часто обнаруживаю, что хочу эффективно запускать функцию Clojure несколько раз с индексом целого числа (например, "dotimes" ), но также получать результаты как готовые последовательности/список (например, "для" ).
то есть. Я хотел бы сделать что-то вроде этого:
(fortimes [i 10] (* i i))
=> (0 1 4 9 16 25 36 49 64 81)
Ясно, что можно было бы сделать:
(for [i (range 10)] (* i i))
Но я бы хотел избежать создания и выброса временного списка диапазонов, если это вообще возможно.
Какой лучший способ достичь этого в Clojure?