ってこういうものだったんですか。
SBCL
(defvar temp-special) (setq temp-special 1) (defun temp-special-returner () (temp-special-returner) (let ((temp-special 2)) (temp-special-returner) |
schemeだとこうはならんですね。常にレキシカルスコープ(こういう言い方していいのか知りませんが)ということですかね。
(define temp-special 0) (set! temp-special 1) (define temp-special-returner (temp-special-returner) (let ((temp-special 2)) |
dynamic-windを使うと同じようなことができるそうな。
- Let Over Lambda / Schemer: 1 - 月の塵
- dynamic-wind 色々試してみた - /var/log/messages
- Gauche ユーザリファレンス: 6.16 制御
- mapの実装とか,dynamic-windのこと
funcall とか function とか #' とか・・・、今のところとても面倒でややこしい印象。まともに Common Lisp さわるの初めてです。
0 件のコメント:
コメントを投稿