新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

レキシカル・スコープ

(setf make-func
(let (a b)
  (labels ((make-func () (defun g (x) (setf b x) (format t "g a:~a b:~a~%" a b))
)) (setf b #'make-func))
  (defun f (x) (setf a x) (format t "f a:~a b:~a~%" a b))
  b))

レキシカル・スコープ恐るべし。Java が出てきたとき、スタックがないのに(あってもいいけど)驚いた。でもよくよく考えたら、スタックなんてものは Z80 の時代の話なので、もっとフレキシブルにコンテキストを保存できてもいいかもしれない。