4
我有一些麻烦了解以下 计划程序的行为:帮助动态风和呼叫/立方厘米
(define c
(dynamic-wind
(lambda() (display 'IN)(newline))
(lambda() (call/cc (lambda (k)
(display 'X)(newline)
k)))
(lambda() (display 'OUT)(newline))))
据我所知,C将被绑定到右边之前创建的continution“(显示'X)“。
但使用c似乎修改自己!定义上述印刷品(如我所料)的,X和OUT:
IN
X
OUT
而且它是一个过程:
#;2> c
#<procedure (a9869 . results1678)>
现在,我希望,当它被再次调用,X是印刷,而不是!
#;3> (c)
IN
OUT
现在c不再是一个程序了,第二个c的调用将不起作用! (c)的每个调用都会做同样的事情 - 打印IN,X和OUT。我错过了什么?
哦,我明白了!毕竟,现在我觉得这是一个非常愚蠢的问题。非常感谢! – josh 2010-06-13 12:38:53
@Eli:“所以你不能第三次调用它” - 除非你总是调用(cc),它将c绑定到定义c的过程的继续:... :) – Jay 2010-06-13 19:39:57
@Jay:你当然是对的。我专注于乔希的设置,除了球拍需要发送一些值 - 所以使用“c”会让它更加混乱。 – 2010-06-13 22:00:17