閱讀關於現實世界中單子的章節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'中。 –