如何在Squeak中获取BlockClosure (我想使用BlockClosure>>callCC)?
当我写#foo时,这是一个BlockContext,这是怎么回事?
更新:我发现BlockClosure主要是一种新的编译器。
取而代之的是,我如何处理海边的延续?我遇到了一些问题,任何例子都将不胜感激。
进一步更新:这样做的目的不是为了使用seaside (至少不是直接使用),而是以一种比滚动自己的状态跟踪迭代器更容易的方式来编写遍历和其他类似的东西。
发布于 2008-10-21 15:34:08
通常,使用Seaside时,您根本不必自己处理Continuations。
您只需在组件中使用#call:和#answer:即可。
如果您正在尝试使用Continuation做其他事情,而不是编写Seaside应用程序,请查看WAComponent>>call:的用法示例。
或者试试这个。打开一个文本窗口。现在,在一个工作区中,一次选择所有这些代码并执行它:
continuation := nil.
result := Continuation currentDo: [:cc |
"store the continuation, cc, somewhere for later use"
continuation := cc.
1 ].
Transcript show: result.您应该会看到1显示在脚本窗口中。现在,在工作区中,执行以下操作:
continuation value: 2然后:
continuation value: 3您应该会看到您传递给continuation的每个值都显示在脚本中,因为您传递给# value :的每个值都会导致恢复延续的上下文,并将新值分配给result。
希望这能帮上忙。
https://stackoverflow.com/questions/219958
复制相似问题