当使用FsToolkit.ErrorHandling并查看此示例时:
testCase "Happy Path Result" <| fun () ->
let actual : Validation<int, string> = validation {
let! a = Ok 3
and! b = Ok 2
and! c = Ok 1
return a + b - c
}
< p > and!的含义是什么?看起来let!被映射到Result.bind,但我没有看到let!和and!之间有任何不同的行为。
据我所见,用let!替换and!会保持相同的行为。
我刚开始涉足计算表达式,事情开始变得有意义了,尽管我真的不明白为什么F#关键字(如let)和实际函数(如bind)之间有不同的命名方式,因此这增加了一层混淆。因此答案可能很明显 :)