% Function SEARCH
Function SEARCH
search
sequence-1 sequence-2
&key from-end test test-not key start1 start2 end1 end2
=> position
sequence-1 - 正常なシーケンス
sequence-2 - 正常なシーケンス
from-end - generalized-boolean、デフォルトはfalse
test - 2つの引数を取りgeneralized-booleanを返却する関数の指定子
test-not - 2つの引数を取りgeneralized-booleanを返却する関数の指定子
key - 1つの引数を取る関数の指定子、またはnil
start1, end1 - sequence-1の境界インデックス指定子。
デフォルトはstart1, end1それぞれ0
とnil
。
start2, end2 - sequence-2の境界インデックス指定子。
デフォルトはstart2, end2それぞれ0
とnil
。
position - sequence-2の境界インデックスか、nil
sequence-2のサブシーケンスとsequence-1がマッチする場所を探します。
実装は、sequence-2をどのような順番で検索するか選べます。
テストの回数を保証することはできません。
例えば、各start、endに値があるとき、
シーケンスは実際には右から左ではなく、
左から右に検索されるかもしれません
(ただしどちらの場合でも、右側にマッチする
サブシーケンスが返却されます)。
もし検索が成功したときは、search
は、
from-endに応じて、sequence-2の左端または右端にマッチする
サブシーケンスの最初の要素のオフセットを返却します。
それ以外の場合は、nil
を返却します。
もしfrom-endがtrueのときは、 もっとも右側にマッチしたサブシーケンスの、 左端の要素のインデックスを返却します。
(search "dog" "it's a dog's life") => 7
(search '(0 1) '(2 4 6 1 3 5) :key #'oddp) => 2
なし。
なし。
なし。
3.6. 横断の規則と副作用
:test-not
パラメーターは非推奨です。