【发布时间】:2014-11-01 14:52:03
【问题描述】:
我正在阅读关于 Monad Transformers 的 this 教程。它包含一个示例代码,其中 case 表达式出现在 do 块中(如下图底部所示)。
这种 case 表达式脱糖成什么?
【问题讨论】:
标签: haskell
我正在阅读关于 Monad Transformers 的 this 教程。它包含一个示例代码,其中 case 表达式出现在 do 块中(如下图底部所示)。
这种 case 表达式脱糖成什么?
【问题讨论】:
标签: haskell
do 块中的case 表达式不会像在do 块之外那样去糖。它们只是Monad m => m a 类型的表达式。
它与if 非常相似,也没有脱糖。
【讨论】:
Monad m => m a 的类型才能通过类型检查器。它们可以对任何类型进行脱糖,但您的程序可能不会进行类型检查。