我有一个关键字向量,我有一组带有实际数据的向量,我想要做的是搜索每个关键字,如果任何向量包含该关键字,则返回true。目前,我只针对一个关键字实现了实现,但我无法使其适用于关键字向量。我是Clojure的新手,所以任何建议都将受到赞赏。 到目前为止,这是我的代码:
(def results (apply map vector [["test1" "test2"] ["test3" "test4" "test5"]]))
(defn in?
"true if coll contains elm"
[coll]
(some #(= "test4" %) coll))
(println (map #(in? %) results))
但我想要这样的事情:
(def searchwords ["test3" "test2"])
(def results (apply map vector [["test1" "test2"] ["test3" "test4" "test5"]]))
(defn in?
"true if coll contains elm"
[coll keyword]
(some #(= keyword %) coll))
答案 0 :(得分:0)
您可以尝试以下
(defn search
[coll keyword]
(println (flatten coll))
(if (= (flatten coll) (list keyword))
true))
(defn in?
[coll keyword]
(map #(search % %2) coll keyword))
(in? results searchwords)
;=> (true)
仅当搜索字符为[“test2”]且结果为[[“test2”]]时才有效。
也许你可以想出一种使用in?
迭代结果的方法。
P.s也是clojure的新手。