% Function FIND, FIND-IF, FIND-IF-NOT
Function FIND
, FIND-IF
, FIND-IF-NOT
find
item sequence
&key from-end test test-not start end key => element
find-if
predicate sequence &key from-end start end key => element
find-if-not
predicate sequence &key from-end start end key => element
item - オブジェクト
sequence - 正常なシーケンス
predicate - 1つの引数をとりgeneralized-booleanを返却する関数の指定子
from-end - generalized-boolean、デフォルトはfalse
test - 2つの引数を取りgeneralized-booleanを返却する関数の指定子
test-not - 2つの引数を取りgeneralized-booleanを返却する関数の指定子
start, end - sequenceの境界インデックス指定子。
デフォルトはstart, endそれぞれ0
とnil
。
key - 1つの引数を取る関数の指定子、またはnil
element - sequenceの要素か、nil
find
、find-if
、find-if-not
は、
startとendで囲まれたsequence内で、
predicateかあるいはtest, test-notを適宜満たすものを検索します。
もしfrom-endがtrueならば、 testを満たすもっとも右側の要素が返却されます。
もしsequenceにtestを満たす要素がある場合、
from-endによって、sequenceのもっとも左にあるものか、
もっとも右にあるものが返却されます。
それ以外のときは、nil
が返却されます。
(find #\d "here are some letters that can be looked at" :test #'char>)
=> #\Space
(find-if #'oddp '(1 2 3 4 5) :end 3 :from-end t) => 3
(find-if-not #'complexp
'#(3.5 2 #C(1.0 0.0) #C(0.0 1.0))
:start 2) => NIL
なし。
なし。
sequenceが正常なシーケンスでないとき、
型type-error
のエラーを通知する準備をしなければなりません。
position
,
17.2. テスト関数のルール,
3.6. 横断の規則と副作用
:test-not
パラメーターは非推奨です。
関数find-if-not
は非推奨です。