Function BUTLAST, NBUTLAST
butlast list &optional n => result-list
nbutlast list &optional n => result-list
list - リスト。ドットリストは受け付けますが、循環リストは受け付けません。
n - 非負の整数
result-list - リスト
butlastは、最後のn個のコンスを無視したlistのコピーを返却します。 nが省略されたときの値は1です。 もしlist内にn個もコンスがなかったときは、 nilが返却され、 nbutlastのときはlistは修正されません。
nbutlastは、butlastと似てますが、 nbutlastはlistを修正するかもしれません。 それは、listの終わりからn+1個のコンスの cdrをnilに修正します。
(setq lst '(1 2 3 4 5 6 7 8 9)) => (1 2 3 4 5 6 7 8 9)
(butlast lst) => (1 2 3 4 5 6 7 8)
(butlast lst 5) => (1 2 3 4)
(butlast lst (+ 5 5)) => NIL
lst => (1 2 3 4 5 6 7 8 9)
(nbutlast lst 3) => (1 2 3 4 5 6)
lst => (1 2 3 4 5 6)
(nbutlast lst 99) => NIL
lst => (1 2 3 4 5 6)
(butlast '(a b c d)) => (A B C)
(butlast '((a b) (c d))) => ((A B))
(butlast '(a)) => NIL
(butlast nil) => NIL
(setq foo (list 'a 'b 'c 'd)) => (A B C D)
(nbutlast foo) => (A B C)
foo => (A B C)
(nbutlast (list 'a)) => NIL
(nbutlast '()) => NILなし。
listが通常のリストではないか、 ドットリストではないとき、 型type-errorのエラーが生じます。 nが非負の整数ではないとき、 型type-errorのエラーが生じます。
なし。
(butlast list n) == (ldiff list (last list n))