현실 세계에서 모나드에 대한 장 읽기. 나는 do 표기법의 desugaring을 우연히 만났습니다. 특히 pattern <- action
과 같은 것을 가지고있을 때 말이죠.모나드 desugaring haskell
-- file: ch14/Do.hs
translated3 =
let f pattern = do act2
{- ... etc. -}
actN
f _ = fail "..."
in act1 >>= f
나는 문제가 이해 당신이 let 절에 두 개의 패턴 매칭의 경우를 할 수있는 방법입니다 데 :
-- file: ch14/Do.hs
doNotation3 =
do pattern <- act1
act2
{- ... etc. -}
actN
위의 예
은에 desugared입니까?동일한 let 절에 f pattern
과 f _
을 어떻게 가질 수 있는지 이해가되지 않습니다. let 절에서 패턴 일치를 여러 개 가질 수 있는지 살펴 보았습니다.하지만 필자가 보았던 것에서는 대부분의 사람들이 case 문을 사용합니다.
나는 실제로 여기서 무슨 일이 일어나는지 이해하는데 도움이 필요합니까?
은 F = (\ 경우 패턴하자 '하는 것과 같습니다 당신이
where
로 변환하는 경우은 아마 조금 더 쉽게 얻는다 act1 >> = f'에서 실패한 "..."). –