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