1

[44 1 11]使用して生成されたシーケンスを取得し、(map #(nth %1 0 nil) v1)それを同じ関数への連続呼び出しにフィード (マップ) したいと考えています。Clojureビルトインまたはビルトインを以外に使用するかどうかはわかりません。

詳細はこちら。

次の 2 つのベクトルが与えられます。

(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 に答える