case on monadic value

后端 未结 3 1176
爱一瞬间的悲伤
爱一瞬间的悲伤 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:46

    No, not really, but you can move the case into another function and apply it to the result of a monadic action.

    f x = case  x of ...
    
    main = do
      f <$> getChar
    

    Alternativly, the following is possible:

    getChar >>= \x -> case x of ...
    

提交回复
热议问题