相关疑难解决方法(0)

如果没有我们在数据类型上定义Eq,Haskell如何进行模式匹配?

我已经定义了一个二叉树:

data Tree = Null | Node Tree Int Tree
Run Code Online (Sandbox Code Playgroud)

并实现了一个函数,它将产生所有节点的值的总和:

sumOfValues :: Tree -> Int
sumOfValues Null = 0
sumOfValues (Node Null v Null) = v
sumOfValues (Node Null v t2) = v + (sumOfValues t2)
sumOfValues (Node t1 v Null) = v + (sumOfValues t1)
sumOfValues (Node t1 v t2) = v + (sumOfValues t1) + (sumOfValues t2)
Run Code Online (Sandbox Code Playgroud)

它按预期工作.我有想法也尝试使用警卫来实现它:

sumOfValues2 :: Tree -> Int
sumOfValues2 Null = 0
sumOfValues2 (Node t1 v t2)
    | t1 == Null && …
Run Code Online (Sandbox Code Playgroud)

haskell pattern-matching

9
推荐指数
3
解决办法
2382
查看次数

标签 统计

haskell ×1

pattern-matching ×1