小编CMD*_*abo的帖子

重叠模式匹配警告与自定义数据类型

我正在将一些程序从Standard ML翻译成Haskell一个类,我对Haskell解析这种模式匹配的方式感到困惑.

我有这种数据类型:

data Term = A | B
          | F Term | G Term | H Term Term
          | Var String
           deriving (Show)
Run Code Online (Sandbox Code Playgroud)

这是我定义的函数的一部分:

unify :: [(Term, Term)] -> Bool
 -- argument represents a list of term equations,
 -- result indicates whether they have a solution
unify nil = True
unify ((A, A):eqns) = unify eqns
unify ((B, B):eqns) = unify eqns
unify ((F(t1), F(t2)):eqns) = unify((t1,t2):eqns)
unify ((G(t1), G(t2)):eqns) = unify((t1,t2):eqns)
unify ((H s1 t1, H s2 t2):eqns) …
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming pattern-matching

1
推荐指数
1
解决办法
245
查看次数