我需要不同的行为来做!然后让!在我的自定义计算表达式中。
我尝试通过以下方式实现这一目标:
type FooBuilder() = class
member b.Bind<'T, 'U>(x:'T, f:unit->'U):'U = failwith "not implemented" //do! implementation
member b.Bind<'T, 'U>(x:'T, f:'T->'U):'U = failwith "not implemented" //let! implementation
member b.Return<'T>(x:'T):'T = failwith "not implemented" //return implementation
end
let foo = FooBuilder()
let x = foo {
do! ()
return 2
}
但是编译器给了我一个错误:
无法根据此程序点之前的类型信息确定方法“绑定”的唯一重载。可用的重载如下所示(或在错误列表窗口中)。可能需要类型注释。
有没有办法有不同的实现 do! 然后让!?