Function POSITION, POSITION-IF, POSITION-IF-NOT

UP


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それぞれ0nil
key - 1つの引数を取る関数の指定子、またはnil
position - sequenceの境界インデックスか、nil

定義

positionposition-ifposition-if-notは、 それぞれテストを満たす要素を検索します。

返却値positionは、 sequence内でテストを満たす もっとも左の要素(from-endfalseのとき)か、 もっとも右の要素(from-endtrueのとき)のインデックスです。 もし見つからなかったときは、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は非推奨です。


TOP, Github