読者です 読者をやめる 読者になる 読者になる

(wat-aro)

無職から有職者にランクアップしました

SICP 問題 5.31

どのタイミングで以下の式を評価する際にどのタイミング何を退避して復帰するか

(f 'x 'y)
'x 'yはシンボルなのでこれ以上の評価が必要ないので
何も退避しなくてよい.
 
((f) 'x 'y)
'x 'yがシンボルなので上と同じく退避の必要ない.
 
(f (g 'x) y)
fを評価する前にenvを退避する.
評価が終わればenvは復帰,procとenvとarglを退避して(g 'x) を評価.
yを評価する前にすべて復帰し,arglを退避して評価.
arglを復帰して適用.
 
(f (g 'x) 'y)
fの評価の前にenvを退避.
その後,envを復帰,procを退避し, (g 'x)を評価
評価が終わればprocを復帰し,適用する.