アイテムがリストにあるかどうかを確認する簡単な方法は何ですか?
何かのようなもの
_(in item list)
_
_item=1
_の場合true
を返し、_item=7
_の場合list=(5 9 1 2)
およびfalse
を返す場合があります
Common LISP
FIND
はお勧めできません:
> (find nil '(nil nil))
NIL
上記は、NIL
がリストにないことを意味します(NIL NIL)
-間違っています。
FIND
の目的は、メンバーシップをチェックすることではなく、テストを満たす要素を見つけることです(上記の例では、テスト関数は通常のデフォルトのEQL
です)。 FIND
はそのような要素を返します。
MEMBER
を使用:
> (member nil '(nil nil))
(NIL NIL) ; everything non-NIL is true
またはPOSITION
:
> (numberp (position nil '()))
NIL
MEMBER
を使用して、アイテムがリストにあるかどうかをテストします:
(member 1 '(5 9 1 2)) ; (1 2)
FIND
とは異なり、NIL
がリストにあるかどうかをテストすることもできます。
find
を使用できます:
(find 1 '(5 9 1 2)) ; 1
(find 7 '(5 9 1 2)) ; nil
:test
引数の使用を検討してください。
(find "a" '("a" "b") :test #'equal)