日曜プログラミング

休日趣味でやってるプログラミング関連記事をダラダラと

シーケンスに特定の値があるか検索する

[Clojure] シーケンスに特定の値があるか検索して返す
元ネタ:data structures - Test whether a list contains a specific value in Clojure - Stack Overflow

欲しいのはあるかどうかをチェックするだけでなく、あればその値を返して欲しいと言う Common Lisp で言う find のようなもの。すぐ思いつくのは filter だけどそのまんまだとフィルタされたシーケンス返されて 1 要素取るのにもう一手間増えてちょっと冗長だよな、もうちょっと短く書けなかったっけ?といつも忘れるのでメモ。

小ネタのくせに前置き長かったけど、答えは以下の 1 行。

user> (some #{100} '(100 101 102))
100

小ネタついでに言うと元ネタの質問で出てる contains? は Clojurian だったら FAQ レベルのワナがあるみたいだがどういうワナかはちゃんと確認してない。