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)
(=> ((1))
llst push 1 (car llst)) => (1 1)
(=> ((1 1))
llst setq x '(a (b c) d)) => (A (B C) D)
(push 5 (cadr x)) => (5 B C)
(=> (A (5 B C) D) x
placeの内容は修正されます。
なし。
なし。
(push item place)
の効果は、次と同等です。
setf place (cons item place)) (
ただし、placeのサブフォームはただ一度しか評価されず、 itemはplaceのあとに評価されます。