我有一個包含一些字符串和整數向量的向量:Clojure的 - 裏面的載體矢量獲取數據
(def data [
["a" "title" "b" 1]
["c" "title" "d" 1]
["e" "title" "f" 2]
["g" "title" "h" 1]
])
我試圖通過向量並返回包含任何行迭代(?)某些字符串例如「一個」。我試圖實現這樣的事情:
(defn get-row [data]
(for [d [data]
:when (= (get-in d[0]) "a")] d
))
我很新Clojure的,但我相信這是說:對於「數據」的每一個元素(矢量),如果向量包含「一」,返回它?
我知道接力需要2個參數,那部分是我不知道該怎麼做的地方。
我看過像this和this這樣的答案,但我真的不明白他們是如何工作的。從我能收集到的信息中,他們正在將矢量轉換爲地圖並對其進行操作?
謝謝,這個工作,但我真的不知道如何?我是否正確地認爲你所做的是將數據中的所有元素(%)過濾爲僅包含「a」的集合? – Touchdown
{**過濾**數據由'{** set **「a」}識別的{**有一些**元素? }} –
在Clojure中,除了一個數據結構之外,一個集合也是一個函數。將函數#{「a」「b」}應用於某個值將返回該值,如果它是「a」或「b」,則返回nil。 'some'依次對一個序列中的每個值應用一個函數,直到找到一個返回真值的函數。 'filter'按照順序遍歷每個元素,並且只保留那些返回真值的元素給你的函數。我建議你在REPL http://www.playclj.com/ – shmish111