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
パラメーターは非推奨です。