Jaki jest idiomatyczny sposób sprawdzania, czy klucz na mapie ma wartość? Na przykład, jeśli mamy:Idiomatyczny sposób sprawdzania, czy klucz na mapie ma wartość
=> (def seq-of-maps [{:foo 1 :bar "hi"} {:foo 0 :bar "baz"}])
Aby dowiedzieć się wszystkich mapach z: foo == 0, lubię:
=> (filter (comp zero? :foo) seq-of-maps)
({:foo 0, :bar "baz"})
Ale jeśli chcę znaleźć wszystkie mapy z: bar == „hi”, najlepiej, że mogę myśleć to:
=> (filter #(= (:bar %) "hi") seq-of-maps)
({:foo 1, :bar "hi"})
który nie znajdę bardzo czytelny. Czy istnieje lepszy/bardziej idiomatyczny sposób robienia tego?
Niezły pomysł, podoba mi się. Na marginesie, w kodzie, twoje ostatnie połączenie nie pasuje do "seq-of-map", które zdefiniowałeś w pierwszym wierszu. –
Whoops na kopiuj/wklej, naprawił to- dzięki! – mikera