11
(map vector [1 2 3] [4 5])
會給:根據clojure中最長的seq映射向量的習慣用法是什麼?
([1 4] [2 5])
這裏3被丟棄。
如果我想將那些過短的seqs自動填充到最大長度,該怎麼辦?
例如 什麼是慣用的方式,如果我想獲得
([1 4] [2 5] [3 nil])
(map vector [1 2 3] [4 5])
會給:根據clojure中最長的seq映射向量的習慣用法是什麼?
([1 4] [2 5])
這裏3被丟棄。
如果我想將那些過短的seqs自動填充到最大長度,該怎麼辦?
例如 什麼是慣用的方式,如果我想獲得
([1 4] [2 5] [3 nil])
(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])
這實在是優雅。 –