Скажем, у меня есть следующий тип данных дерево:Как получить значения внутри переменной типа данных?
datatype 'a tree = Empty | Node of 'a * 'a tree * 'a tree;
val x = Node(10, Node(20, Empty, Empty), Node(30, Empty, Empty));
Здесь х является переменной типа INT дерева. Я хочу знать, как я могу анализировать и оценивать разные части дерева, только переменная x?
Например, в этой функции:
fun add(tree) = ....
add(x);
Say функция добавляет все значения в узлах дерева, как бы я точно захватить эти ценности? Я знаю для кортежей, которые вы можете просто сделать:
#i(x, y, z, ......)
Чтобы захватить элемент в i-м индексе. Как этот тип функциональности работает с рекурсивными типами данных?