具有多个表达式的Haskell case分支

具有多个表达式的Haskell case分支,haskell,pattern-matching,Haskell,Pattern Matching,我使用模式匹配来处理以下多种情况: case maybeV of Nothing -> doWhenNothing Just something -> doWhenSomethingExpression_1 doWhenSomethingExpression_2 case maybeV of Nothing -> doWhenNothing Ju

我使用模式匹配来处理以下多种情况:

case maybeV of Nothing -> doWhenNothing 
               Just something -> doWhenSomethingExpression_1
                                 doWhenSomethingExpression_2 
case maybeV of Nothing -> doWhenNothing 
               Just something -> do
                 doWhenSomethingExpression_1
                 doWhenSomethingExpression_2 
编译器似乎将第二个表达式
dowhensomethingeexpression_2
视为
dowhensomethingeexpression_1
的参数,并报告错误。当我在
case
的一个分支中有多个表达式时,如何处理这种情况


顺便说一句,我想我可以使用
if
来判断
的值,但是使用
if
是一个好方法吗?

假设您的代码在单子中,您可能希望这样:

case maybeV of Nothing -> doWhenNothing 
               Just something -> doWhenSomethingExpression_1
                                 doWhenSomethingExpression_2 
case maybeV of Nothing -> doWhenNothing 
               Just something -> do
                 doWhenSomethingExpression_1
                 doWhenSomethingExpression_2 

这是Monad(
do
environment)吗?Haskell是一种函数式语言,因此您不能简单地枚举指令……您应该在问题中添加
doWhenSomething…
类型和其他相关信息。