嗨,我是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);
这是错误
谢谢,Rico
答案 0 :(得分:3)
只要问问自己,如果你打电话,会发生什么,
Addthird(0, Node(1, Empty, Empty, Empty))
同样适用于其他功能。模式匹配需要涵盖所有情况,您的定义仅涵盖Empty
作为最后一个参数。