【问题标题】:What's the idiomatic way to map vector according to the longest seq in clojure?根据clojure中最长的序列映射向量的惯用方法是什么?
【发布时间】:2013-03-24 01:36:51
【问题描述】:
(map vector [1 2 3] [4 5])

将给予:

([1 4] [2 5])

这里 3 被丢弃。

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

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

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

【问题讨论】:

    标签: map vector clojure


    【解决方案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])
    

    【讨论】:

      猜你喜欢
      • 2011-05-04
      • 1970-01-01
      • 2011-05-28
      • 2016-10-05
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多