do には別の動作が必要です。そしてさせてください!私のカスタム計算式で。
私は次の方法でこれを達成しようとします:
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
}
しかし、コンパイラは私にエラーを与えます:
このプログラム ポイントより前の型情報に基づいて、メソッド 'Bind' の一意のオーバーロードを特定できませんでした。利用可能なオーバーロードを以下に示します (または [エラー リスト] ウィンドウに表示します)。型注釈が必要な場合があります。
do! の別の実装を行う方法はありますか? そしてさせて!?