2012-01-09 9 views

答えて

11

some

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

正確に何をお探しですか? :) – Annan

+8

ここでは、マップがキーのコレクションで呼び出される述語関数としてここで使用されていることに注意することは興味深いです。したがって、あなたが得るのは厳密に最初の非ゼロ値ではなく、最初の "真実"値です。 '(いくつかの{:foo nil:bar false:baz 20} [:foo:bar:baz])'を試してください。 –

+7

そうですね、値がnilでもfalseでも動作するバージョンは、 '(when-let [[k v](some m(find m%)[:foo:bar:baz])]])'のようになります。 – amalloy

関連する問題