在计算表达式中运行方法

Mau*_*fer 3 f#

Run()计算方法中方法的状态是什么?我已经在几个例子中看到了它(这里,这里,这里),我已经在其中看到了F#的编译器源代码,但它不在规范MSDN文档中.我在MS Connect中提出了一个关于此问题的问题,它被"按设计"关闭而没有进一步的解释.

它是否已弃用/未记录/不受支持?我应该避免吗?

更新:MS Connect问题状态已及时更改,MSDN页面已更新为包含Run()

des*_*sco 8

6.3.10计算表达式

更具体地说,计算表达式的形式为builder-expr {cexpr},其中cexpr在语法上是带有comp-expr中定义的附加结构的表达式的语法.计算表达式用于F#表达式语法的序列和其他非标准解释.表达式builder-expr {cexpr}转换为

let b = builder-expr in b.Run (b.Delay(fun () -> {| cexpr |}C)) 
Run Code Online (Sandbox Code Playgroud)

换一个新变量b.如果在检查此表达式时,在推断的b类型上没有方法Run,则省略该调用.同样,如果在检查此表达式时b> b的类型上没有方法Delay,则省略该调用