小编Phi*_*ner的帖子

Haskell中广泛模式匹配的清洁替代方案

现在,我有一些基本上像这样的代码:

data Expression 
    = Literal Bool 
    | Variable String
    | Not Expression 
    | Or Expression Expression 
    | And Expression Expression
    deriving Eq

simplify :: Expression -> Expression
simplify (Literal b) = Literal b
simplify (Variable s) = Variable s
simplify (Not e) = case simplify e of
    (Literal b) -> Literal (not b)
    e'          -> Not e'
simplify (And a b) = case (simplify a, simplify b) of
    (Literal False, _) -> Literal False
    (_, Literal False) -> Literal False …
Run Code Online (Sandbox Code Playgroud)

haskell boolean-logic pattern-matching

22
推荐指数
3
解决办法
1024
查看次数

标签 统计

boolean-logic ×1

haskell ×1

pattern-matching ×1