2012-01-09 11 views

Odpowiedz

11

some.

user=> (some {:fum 4 :bar 41 :baz 45} [:foo :bar :baz]) 
41 
+0

Dokładnie tego szukam! :) – Annan

+8

Warto zauważyć, że mapa jest tutaj używana jako funkcja predykcyjna, która jest wywoływana z kolekcją kluczy. Zatem to, co otrzymasz, nie jest ściśle pierwszą niezerową wartością, ale pierwszą wartością "prawdy". Spróbuj '(some {: foo zero: bar false: baz 20} [: foo: bar: baz])' na przykład. –

+7

Dobrze, więc wersja, która działa dla wartości, które są zerowe lub fałszywe, wygląda jak '(when-let [[v v] (some # (find m%) [: foo: bar: baz])] v)'. – amalloy

Powiązane problemy