% Macro PUSH
Macro PUSH
push
item place => new-place-value
item - オブジェクト
place - place
, 任意のオブジェクトの値
new-place-value - リスト(place
の新しい値)
push
はplaceに保存されているリストの先頭にitemを追加し、
placeにその結果のリストを保存して返却します。
placeのサブフォームの評価については、
5.1.1.1. place
のサブフォームの評価をご確認ください。
(setq llst '(nil)) => (NIL)
(push 1 (car llst)) => (1)
llst => ((1))
(push 1 (car llst)) => (1 1)
llst => ((1 1))
(setq x '(a (b c) d)) => (A (B C) D)
(push 5 (cadr x)) => (5 B C)
x => (A (5 B C) D)
placeの内容は修正されます。
なし。
なし。
(push item place)
の効果は、次と同等です。
(setf place (cons item place))
ただし、placeのサブフォームはただ一度しか評価されず、 itemはplaceのあとに評価されます。