ML:匹配非穷举错误

时间:2016-10-07 17:40:13

标签: sml

嗨,我是ML的新手,我不知道如何解决这个问题。

这是代码

datatype ttree = Empty | Node of int * ttree * ttree * ttree;

(* initialize the fist node *)

fun Addthird(K:int, Empty) = Node(K, Empty, Empty, Empty);

fun Addsecond(Y:int, K:int, Empty) = Node(Y, Empty, Addthird(K, Empty), Empty);

fun AddNode(T:int, Y:int, K:int, Empty) = Node(T, Empty, Addsecond(Y, K, Empty), Empty);

这是错误

ERROR-ERROR

谢谢,Rico

1 个答案:

答案 0 :(得分:3)

只要问问自己,如果你打电话,会发生什么,

Addthird(0, Node(1, Empty, Empty, Empty))

同样适用于其他功能。模式匹配需要涵盖所有情况,您的定义仅涵盖Empty作为最后一个参数。