Function REVERSE, NREVERSE

UP


Function REVERSE, NREVERSE

Function REVERSE, NREVERSE

構文

reverse sequence => reversed-sequence nreverse sequence => reversed-sequence

引数と戻り値

sequence - 正常なシーケンス
reversed-sequence - シーケンス

定義

reversenreverseは、 sequenceと同じ種類の、同じ要素が逆順に配置された、 新しいシーケンスを返却します。

reversenreverseの違いは、 reverseは常に新しいシーケンスを作成して返却するのに対して、 nreverseはおそらく引数のsequenceを修正して返却します。

reverseは、もしsequencevectorのとき、 返却値は新しい一次元のsimple-arrayであり、 sequenceと同じ実際の配列の要素の型を持ちます。 もしsequenceがリストなら、返却値は新しいリストです。

nreverseは、もしsequencevectorのとき、 返却値は一次元のsimple-arrayであり、 sequenceと同じ実際の配列の要素の型を持ちます。 もしsequenceがリストなら、返却値はリストです。

nreverseは、sequenceを破壊して再利用して、 返却値を生成するかもしれません。 返却値はsequenceと同一かもしれませんし、そうでないかもしれません。 特に、sequenceがリストのとき、 nreverseは、sequenceのリスト構造の部分にあるどのコンスの car, cdr部分でも、setfを実行することが許されます。 sequencevectorのとき、 nreverseは、返却値のvectorを求めるために、 sequenceの要素の順番を変更することが許されます。

例文

(setq str "abc") =>  "abc"
(reverse str) =>  "cba"
str =>  "abc"
(setq str (copy-seq str)) =>  "abc"
(nreverse str) =>  "cba"
str =>  implementation-dependent
(setq l (list 1 2 3)) =>  (1 2 3)
(nreverse l) =>  (3 2 1)
l =>  implementation-dependent

副作用

nreverseは、新しいシーケンスを作成するか、 sequenceの引数を変更するか、 あるいはその両方をするかもしれません。 (reverseseqeunceの修正を行いません)

影響

なし。

例外

sequenceが正常なシーケンスでないとき、 型type-errorのエラーを通知する準備をしなければなりません。

参考

なし。

備考

なし。


TOP, Github