Задача: У меня есть коллекция векторов или списков, которые я хотел бы найти идиоматический способ суммирования на существующий вектор, возможно, с неравномерными векторами. надуманный пример, показывающая установку:Идиоматический способ суммирования нескольких векторов в Clojure
=>(def collated-list [2 3 4 5 6 7 8])
=>(def lists-to-add (partition-all 3 collatedlist))
=>(def base-list [1 1 1])
Я хотел бы результат суммировать неисправный разбор по спискам на base-list
, например, первый элемент будет 1 + 2 + 5 + 8
и так далее.
Что я пробовал: Я попытался map
и for
петли в нескольких различных способах, но я, кажется, сталкиваюсь либо проблемы с Ленивым секвенирование или проблемами в попытке добавить Integer
к Vector
.
Это мои первые эксперименты с Clojure, поэтому почти наверняка я неправильно понимаю функциональную итерацию здесь.
Благодаря
Смотрите также гее (изменение поведения карты в Clojure) (http://stackoverflow.com/questions/9033678/changing-map-behaviour-in-clojure), который имеет дело с 'map'-with-padding в общем случае (т. с произвольной функцией, количеством списков и дополняющим элементом). –