11
(map vector [1 2 3] [4 5])

会给:

([1 4] [2 5])

这里 3 被丢弃。

如果我想自动将那些太短的序列填充到最大长度怎么办?

例如,如果我想得到,惯用的方式是什么

([1 4] [2 5] [3 nil])
4

1 回答 1

14
(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])
于 2013-04-02T18:35:03.270 回答