Function FIND, FIND-IF, FIND-IF-NOT

UP


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それぞれ0nil
key - 1つの引数を取る関数の指定子、またはnil
element - sequenceの要素か、nil

定義

findfind-iffind-if-notは、 startendで囲まれたsequence内で、 predicateかあるいはtest, test-notを適宜満たすものを検索します。

もしfrom-endtrueならば、 testを満たすもっとも右側の要素が返却されます。

もしsequencetestを満たす要素がある場合、 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は非推奨です。


TOP, Github