fou*_*nes 2 haskell pattern-matching
在下面的代码中,函数disp通过解构来定义Sum b c,然后立即重建它.问题是,我不需要b和c,只有一个事实,即它的类型Sum.
data Expr = Name String | Sum Expr Expr
deriving(Show)
disp (Sum (Name a) (Sum b c)) = a ++ ":" ++ disp (Sum b c)
Run Code Online (Sandbox Code Playgroud)
有disp没有这种解构的方式没有这种解构 - 重建(b和c绑定),或者这是编写这样一个函数的正确方法?
Fra*_*ser 14
disp (Sum (Name a) s@(Sum _ _)) = a ++ ":" ++ disp s
@ 允许多个匹配同一件事
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |