Macro POP
pop
place => element
place - place
, リストである値(ドットリストか循環リストの可能性があります)
element - オブジェクト(placeの内容のcar
部)
pop
はplaceから値を読み、 取得されたリストのcar
を取得し、 placeにリストのcdr
を書き込み、 そして最後にリストから取得した元のcar
部を返却します。
placeのサブフォームの評価については、 5.1.1.1. place
のサブフォームの評価をご確認ください。
setq stack '(a b c)) => (A B C)
(pop stack) => A
(=> (B C)
stack setq llst '((1 2 3 4))) => ((1 2 3 4))
(pop (car llst)) => 1
(=> ((2 3 4)) llst
placeの内容は修正されます。
なし。
なし。
(pop place)
の効果は、だいたい次と同等です。
prog1 (car place) (setf place (cdr place))) (
ただし、これはサブフォームを3回評価するのに対して、 pop
はそれをたった一度しか評価しません。