2013-11-23 3 views
0

Для вектора или, возможно, вложенного вектора, как вы выполняете итерацию функции в Clojure над вектором (вложенным вектором) n раз? Более того, как вы можете вывести каждый уровень итерации в вектор? При этом выходной вектор начинается с начальных условий, а именно входного вектора (вложенный вектор), за которым следуют последующие итерации.Итерация в Clojure над векторами

ответ

2

думаю, что вы хотите iterate. Он возвращает ленивую последовательность итераций, начиная с ввода. Так, например:

(def init (range 10)) 

(take 3 (iterate #(map inc %) init)) 
;; gives ((0 1 2 3 4 5 6 7 8 9) (1 2 3 4 5 6 7 8 9 10) (2 3 4 5 6 7 8 9 10 11)) 
+0

Как это можно превратить в общую функцию? Я попробовал нечто подобное раньше, заменив inc на f, 3 на n и init с помощью a. Итак, я вводил [a n f]. – sunspots

+0

@Alex: Похоже, у вас это есть. Какая у вас проблема? – Chuck

+0

Проблема предотвращена. Код работает, спасибо! – sunspots

Смежные вопросы