Haskell:单行中的`|`,`<-`和`->`的含义

时间:2019-04-04 21:27:12

标签: haskell

这样的表达是什么意思?取自here

case x of
    Left e
        | Just pe <- fromException e -> return $ Left pe

此模式是否与守卫匹配,然后映射匹配的结果?此处使用的->语法的名称是什么?

1 个答案:

答案 0 :(得分:7)

那是pattern guard。有点像语法糖

case x of
    Left e -> case fromException e of
      Just pe -> return $ Left pe

除非Just pe匹配失败,否则执行将自动移至外部 case x of开关中的下一个子句。