- 719 名前:デフォルトの名無しさん [04/10/11 23:45:56]
- >> 716
ありがとうございます. 実際に追っているコードを示した方が早いので,そうします. たとえば,Kent Dybvig プログラミング言語Scheme (日本語版) p.61に,call/ccのサンプルとして (let ((x (call/cc (lambda (k) k)))) (x (lambda (ignore) "hi"))) => "hi" というのがありますが,これは結局 (call/cc (lambda (k) k) (lambda (ignore) "hi")) と等価(でよいのでしょうか)ですね. この式内の引数 (lambda (ignore) "hi")はprocedure だから,答は本にあるように "hi" じゃなくて,その procedure自体(#<user-defined-function> みたい) になると思うのです. しかし確かにguileなどでは本の通り "hi" と出ます. 問題はこのprocedure自体を返すのか,evalった結果を 返すのかの違いにあるのだと思いますが、「eval忘れ」 がどこかにあるのでしょうか? ちなみに kawa ではエラーとなり確認できません.
|

|