npt-japanese

% Function LAST

UP


Function LAST

Function LAST

構文

last list &optional n => tail

引数と戻り値

list - リスト。ドットリストは受け付けますが、循環リストは受け付けません。
n - 非負の整数。デフォルトは1
tail - オブジェクト

定義

lastは、listの最後のn個のコンス (最後のn要素ではありません)を返却します もしlist()なら、last()を返却します。

もしn0のとき、listを終端しているアトムが返却されます。 もしnが、listのコンスセルの数以上のとき、 listが返却されます。

例文

(last nil) =>  NIL
(last '(1 2 3)) =>  (3)
(last '(1 2 . 3)) =>  (2 . 3)
(setq x (list 'a 'b 'c 'd)) =>  (A B C D)
(last x) =>  (D)
(rplacd (last x) (list 'e 'f)) x =>  (A B C D E F)
(last x) =>  (F)

(last '(a b c))   =>  (C)

(last '(a b c) 0) =>  ()
(last '(a b c) 1) =>  (C)
(last '(a b c) 2) =>  (B C)
(last '(a b c) 3) =>  (A B C)
(last '(a b c) 4) =>  (A B C)

(last '(a . b) 0) =>  B
(last '(a . b) 1) =>  (A . B)
(last '(a . b) 2) =>  (A . B)

副作用

なし。

影響

なし。

例外

listが循環リストのときの結果は未定義です。 nが非負の整数ではないとき、 型type-errorのエラーが発生します。

参考

butlast, nth

備考

下記のコードは、lastの定義です。

(defun last (list &optional (n 1))
  (check-type n (integer 0))
  (do ((l list (cdr l))
       (r list)
       (i 0 (+ i 1)))
      ((atom l) r)
    (if (>= i n) (pop r))))

TOP, Github