Ale*_*kov 4 wolfram-mathematica mathematica-frontend
默认情况下,在评估中按Alt+ .或调用Abort[]
会导致当前评估输入的中止.但是当在FrontEnd中工作时,我们通常会向内核发送一系列输入.例如,如果我们在一个单独的行中键入以下三个表达式Cell
,然后按Shift+ Enter我们得到无限评估:
f := CheckAbort[Pause[.1], Abort[]]
While[True, f]
While[True, f]
While[True, f]
Run Code Online (Sandbox Code Playgroud)
要停止这种无限评估,我们必须按Alt+ .三次.
如何f
在上面的例子中定义函数,按下Alt+ . 一次将中止对输入的完整序列的评估而不退出内核?
编辑
我认为如果FrontEnd为MathKernel创建一个输入队列,它可能也会取消这个队列.
Sasha建议只使用四个单元格是有效的,因为这基本上就是FrontEnd所做的事情,向内核提交了几个不同的评估.如果你坚持使用一个单元格,将它包装在parens(CompoundExpression
)中,这会导致这四行被视为一个评估(注意也需要;
):
(
f := CheckAbort[Pause[.1], Abort[]];
While[True, f];
While[True, f];
While[True, f]
)
Run Code Online (Sandbox Code Playgroud)
然后,一次中止将中止整个评估.
归档时间: |
|
查看次数: |
3330 次 |
最近记录: |