1

我想获取使用[44 1 11]生成的序列(map #(nth %1 0 nil) v1)并将其馈入(映射)到对同一函数的连续调用中。我只是不确定要使用哪个 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) ))

所以我正在寻求帮助如何将(地图)[44 1 11]输入到这样的 ret-non-match-rows

(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)

我得到一个序列序列,并将解析它以获得我的结果。

4

1 回答 1

1

也许你想要这个:

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

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

于 2012-05-07T13:53:10.880 回答