Clojure:从惰性序列中提取具有特定值的映射



我有一个 Clojure 懒惰序列:

{
    {:keyOne 123, :keyTwo "TestVal"}
    {:keyOne 456, :keyTwo "Value2"}
    {:keyOne 789, :keyTwo "TestVal"}
}

我想获取具有给定键特定值的映射,例如,我想要所有将值"TestVal"作为:keyTwo值的映射,所以我期望结果中的第一个和第三个元素。

我想我应该能够使用 filter 解决这个问题,但我浏览了我能找到的所有示例,它们从未使用过这样的嵌套结构。

{{:keyOne 123, :keyTwo "TestVal"}
 {:keyOne 456, :keyTwo "Value2"}
 {:keyOne 789, :keyTwo "TestVal"}}

在 clojure 中,这个表达式没有意义,这不是懒惰的映射序列。为了充分回答您的问题,我认为输入数据如下所示:

(def input '({:keyOne 123, :keyTwo "TestVal"}
             {:keyOne 456, :keyTwo "Value2"}
             {:keyOne 789, :keyTwo "TestVal"}))

我们可以根据您的目的制作这样的表达式:

(filter (fn [m] (= "TestVal" (:keyTwo m))) input)

它不在乎输入序列是懒惰还是不懒惰(渴望)。

相关内容

  • 没有找到相关文章

最新更新