% Function MISMATCH
Function MISMATCH
mismatch
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-1とsequence-2のサブシーケンスを 要素ごとに比較します。
keyの引数は、sequence-1とsequence-2の両方が使われます。
もしsequence-1とsequence-2の長さが等しく、 全ての要素も等しいときは、falseが返却されます。 それ以外の場合は、返却値は非負の整数であり、 2つのサブシーケンスがマッチしなかった、 もっとも右側か左側(from-endの値による)の、 sequence-1内でのインデックスを表します。 どちらかのサブシーケンスが他方より短く、 前の方で一致する部分がある場合、 返却値は、最後にテストをした位置より先の、 sequence-1に対する相対的なインデックスになります。
もしfrom-endがtrueのときは、
2つのシーケンスの異なった位置の右端のインデックスに
1
を加えた場所が返却されます。
実際の比較は、サブシーケンスは右端で揃えられ、
まず最後の要素が比較され、つぎに最後から2番目が比較され、
それが繰り返されます。
返却される値は、sequence-1からの相対的なインデックスです。
(mismatch "abcd" "ABCDE" :test #'char-equal) => 4
(mismatch '(3 2 1 1 2 3) '(1 2 3) :from-end t) => 3
(mismatch '(1 2 3) '(2 3 4) :test-not #'eq :key #'oddp) => NIL
(mismatch '(1 2 3 4 5 6) '(3 4 5 6 7) :start1 2 :end2 4) => NIL
なし。
なし。
なし。
3.6. 横断の規則と副作用
:test-not
パラメーターは非推奨です。