我正在寻找学习 F#,但让我感到困惑的一件事是计算表达式(do-notation??)语法和脱糖。
在 haskell 中,您有一个非常简单的 Monad 类型类和将 do-notation 脱糖到 bind 和 return 的规则。添加关键字没有魔法。唯一必须匹配的是类型。
在 F# 中有一堆构建器、关键字和复杂性。
关于如何将一个概念映射到另一个概念是否有很好的解释?
我基本上想知道我如何映射
do
x <- monadicComputation
foo x
someOtherMonadicComputation
let y = somePureComputation x
return $ bar y
到F#。
haskell 中唯一的关键字是 do、(<-) 和 let。