% Function POSITION, POSITION-IF, POSITION-IF-NOT
Function POSITION
, POSITION-IF
, POSITION-IF-NOT
position
item sequence
&key from-end test test-not start end key => position
position-if
predicate sequence &key from-end start end key => position
position-if-not
predicate sequence &key from-end start end key => position
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
position - sequenceの境界インデックスか、nil
position
、position-if
、position-if-not
は、
それぞれテストを満たす要素を検索します。
返却値positionは、
sequence内でテストを満たす
もっとも左の要素(from-endがfalseのとき)か、
もっとも右の要素(from-endがtrueのとき)のインデックスです。
もし見つからなかったときは、nil
が返却されます。
インデックスの返却値は、
start, end, from-endに関係なく、
seqeunce全体の左端から相対的なものです。
(position #\a "baobab" :from-end t) => 4
(position-if #'oddp '((1) (2) (3) (4)) :start 1 :key #'car) => 2
(position 595 '()) => NIL
(position-if-not #'integerp '(1 2 3 4 5.0)) => 4
なし。
なし。
sequenceが正常なシーケンスでないとき、
型type-error
のエラーを通知する準備をしなければなりません。
find
,
3.6. 横断の規則と副作用
:test-not
パラメーターは非推奨です。
関数position-if-not
は非推奨です。