case on monadic value

后端 未结 3 1178
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-02-04 02:10

Is there a way to perform a case on the value stored within a monad without having to bind a name to it?

i.e. instead of doing this:

c <- getChar
case         


        
3条回答
  •  挽巷
    挽巷 (楼主)
    2021-02-04 02:55

    The proposal mentioned by FUZxxl was now implemented in GHC since 7.6.1, it's called LambdaCase.

    Now you can do:

    {-# LANGUAGE LambdaCase #-}
    getChar >>= \case
       ...
    

    Note the \ before the case keyword and the fact that there is no of in that case.

提交回复
热议问题