Я хотел бы применить функцию несколько раз к структуре данных и задавался вопросом, есть ли более простой способ.неоднократно применяют функцию к структуре данных
;; simple map and map-incrementing function
(def a {:a 1})
(defn incmap [x] (update-in x [:a] inc))
;; best I could come up with
(reduce (fn [m _] (incmap m)) a (range 10))
;; was hoping for something like this
(repeatedly-apply incmap a 10)
Вы могли бы сделать что-то подобное с итерацией (например, '(nth (итерация incmap a) 10)', но я не понимаю ваш случай использования. Что именно вы пытаетесь достичь? –
my usecase относится к популяционной генетике. У меня есть вектор (совокупность) карт (отдельных лиц) и некоторые функции, которые будут изменять значения в отдельных картах. Функция может установить флаг для индивида, чтобы умереть/мутировать ('inc' в этом вопросе.) Случайное число определит, сколько из этих изменений должно произойти в каждом раунде. Все мои функции возвращают модифицированный вектор популяции. Я хотел применить функцию «смерть» N раз к вектору моего населения. – zach