Какой идиоматический способ сопоставить вектор в соответствии с самым длинным seq в clojure? (map vector [1 2 3] [4 5]) даст: ([1 4] [2 5]) Здесь 3 отбрасывается. Что делать, если я хочу автоматически наложить эти короткие строки на максимальную длину? например. Какой идиоматический способ, если я хочу получить ([1 4] [2 5] [3 nil]) Ответ 1 (defn map-all [f & colls] (lazy-seq (when (some seq colls) (cons (apply f (map first colls)) (apply map-all f (map rest colls)))))) (map-all vector [1 2 3] [4 5]) ;=> ([1 4] [2 5] [3 nil])
Ответ 1 (defn map-all [f & colls] (lazy-seq (when (some seq colls) (cons (apply f (map first colls)) (apply map-all f (map rest colls)))))) (map-all vector [1 2 3] [4 5]) ;=> ([1 4] [2 5] [3 nil])