У меня все еще есть проблемы с этим, поэтому я могу попросить о дополнительной помощи.
Нам дают:
datatype which = STRING of string | INT of int
Часть 1. Нам говорят, что нам нужно создать еще однутип данных namedTree для двоичного дерева, содержащего значения типа «which», где данные находятся только на листьях дерева.
Я предположил, что это будет правильный ответ:
datatype whichTree = Empty | Leaf of which | Node of whichTree*whichTree;
Оказывается, это не так, когда я запускаю:
val inttree = Node(Leaf(1), Leaf(2));
Я получаю ошибку.
Мне удалось выяснить, что я могу сделать что-то вроде этого:
datatype 'a whichTree = Empty | Leaf of 'a | Node of 'a whichTree * 'a whichTree;
или
datatype whichTree = Empty | Leaf of int | Node of whichTree*whichTree;
Но ни один из них не кажется мне правильным, поскольку в моем первом случае у моего имени типа данных есть буква 'a, а в моем другом я говорю Leaf of int, когда долженбыть в состоянии указать string или int с помощью которого.
Может кто-нибудь сказать мне, что правильно ответить на него или предоставить мне некоторую помощь?