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のあとに評価されます。