阅读关于现实世界中单子的章节Haskell。我遇到了符号的解除,特别是当我们有像pattern <- action
之类的东西时。monadic desugaring haskell
-- file: ch14/Do.hs
doNotation3 =
do pattern <- act1
act2
{- ... etc. -}
actN
上面的例子是脱到:
-- file: ch14/Do.hs
translated3 =
let f pattern = do act2
{- ... etc. -}
actN
f _ = fail "..."
in act1 >>= f
我无法理解的是你如何可以有两种模式匹配的情况下在let语句?
我不明白你如何在同样的let子句中拥有f pattern
和f _
。我试着查找一下,如果在let子句中可以有多个模式匹配,但从我所看到的情况来看,大多数人使用case语句来实现这一点。
我想了解一些实际发生的事情吗?
与λ-情况下,它等同于'让F =(\ Case模式 - >做{ACT2; ...; act1}; _ - >失败“...”)在act1 >> = f'中。 –