Я спробував наступне в Clojure, очікуючи повернення класу не ледачої послідовності:
(.getClass (doall (take 3 (repeatedly rand))))
Однак це все одно повертається clojure.lang.LazySeq
. Я припускаю, що doall
він оцінює всю послідовність, але повертає початкову послідовність, оскільки вона все ще корисна для запам'ятовування.
Отже, які ідіоматичні засоби створення нелінивої послідовності з лінивої?
(vec (take 3 (repeatedly rand)))
doall