在haskell中,合并;案例;及&燃气轮机&燃气轮机=&引用;

在haskell中,合并;案例;及&燃气轮机&燃气轮机=&引用;,haskell,case,Haskell,Case,我有很多这种风格的代码: do x <- getSomething case x of this -> ... that -> ... other -> ... do x。。。 那-->。。。 其他->。。。 任何组合“x的方法都可以使用bind操作符来管道化x import System.Environment (getArgs) main :: IO () main = getArgs >>= process

我有很多这种风格的代码:

do
  x <- getSomething
  case x of
    this -> ...
    that -> ...
    other -> ...
do
x。。。
那-->。。。
其他->。。。

任何组合“x的方法都可以使用bind操作符来管道化
x

import System.Environment (getArgs)

main :: IO ()
main = getArgs >>= process
    where process ["xxx"] = putStrLn "You entered xxx"
          process ["yyy"] = putStrLn "You entered yyy"
          process _       = putStrLn "Error"
我这样做是因为

foo "this" = return 2
foo "that" = return 3

main = foo =<< getSomething
foo“this”=返回2
foo“that”=返回3

main=foo=如果您想要非常接近的东西:

getSomething >>= caseOf
    this  -> expr1
    that  -> expr2
    other -> expr3
那么我认为你只是运气不好——Haskell中没有这样的语法。但要知道,你并不孤单。Mark Jones将习惯语言定义为包含一种带有语法的一元格:

case<- getSomething of
    Nothing -> expr1
    Just x  -> expr2 x
case expr1
只需x->expr2 x

他把这称为语言定义中的“Case From”语句。

我希望
Case of
\x->Case x of
的缩写。
case<- getSomething of
    Nothing -> expr1
    Just x  -> expr2 x