Я хочу изучить F #, но одна вещь, которая меня смущает, - это синтаксис выражения вычисления (do-notation ??) и дешугаризация.
В haskell у вас есть очень простой класс типов Monad и правила для дешугаризации do-нотации в bind и return. В добавлении ключевых слов нет никакой магии; единственное, что должно совпадать, это типы.
В F# есть куча компоновщиков, ключевых слов и сложности.
Есть ли хорошее объяснение того, как сопоставить одно понятие с другим?
Я в основном хочу знать, как я сопоставляю
do
x <- monadicComputation
foo x
someOtherMonadicComputation
let y = somePureComputation x
return $ bar y
to F#.
Единственными ключевыми словами в хаскеле являются do, (‹-) и let.