#sml
#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);
и это ошибка
Спасибо, Рико
Ответ №1:
Просто спросите себя, что произойдет, если вы позвоните, скажем,
Addthird(0, Node(1, Empty, Empty, Empty))
Аналогично для других функций. Сопоставление с шаблоном должно охватывать все случаи, ваши определения используются только Empty
в качестве последнего аргумента.