如何生成多个调用以在序列中使用一个Arg

时间:2012-05-07 12:48:45

标签: clojure

我想使用[44 1 11]生成的序列(map #(nth %1 0 nil) v1)和feed(map)对相同函数的连续调用。我只是不确定哪个Clojure内置或内置使用而不是。

以下是详细信息。

鉴于这两个载体:

(def v1 [[44 2 3 4 5]
         [1 6 7 5 10]
         [11 12 13 14 15]])

(def v2 [[1 2 3 4 44]
         [1 6 7 5 1]
         [11 12 13 14 44]])

和这个功能

(defn ret-non-match-rows
    "Expects a sequence of sequences, like what is returned from clojure-csv.
     Returns all csv rows that do not match cmp-val at cmp-col-idx."

    [s-o-s cmp-val cmp-col-idx]

    (filter (complement nil?) 
       (map #(if (ret-col-match %1 cmp-val cmp-col-idx) nil %1) s-o-s) ))

所以我正在寻求有关如何将{map} [44 1 11]提供给此类非匹配行的帮助

(ret-non-match-rows v2 44 4)
(ret-non-match-rows v2 44 1)
(ret-non-match-rows v2 44 11)

但使用Clojure内置函数来生成这些单独的调用。

谢谢。

编辑:

以下内容为我提供了我想要的内容,但我想知道是否有更简洁的方法。

(def ssn-1 [44 1 11])
(def tst (partial ret-non-match-rows v2 4))
(map #(tst %1) ssn-1)

我找回一系列序列并解析它以获得我的结果。

1 个答案:

答案 0 :(得分:1)

也许你想要这个:

(map (partial ret-non-match-rows v2 44) (map first v1))

(假设第一个示例调用中的4是拼写错误,应该是44