доступ к узлам / листьям в дереве - PullRequest
0 голосов
/ 30 января 2012

Я делаю домашнюю работу в Standard ML, которую мы только начали изучать, и застрял, пытаясь вычислить сумму листьев в дереве.Как я могу получить доступ к элементам в узле этого дерева?

enter image description here

1 Ответ

0 голосов
/ 30 января 2012

Вы деконструируете сложные типы данных через сопоставление с образцом. В большинстве случаев вы делаете это в аргументах своей функции. Если ваша функция f принимает список в качестве аргумента, а не определяет его как

fun f X = ...

вы бы сказали

fun f x::xs = ...

Теперь, когда вы передадите ему список, он автоматически назначит x первому элементу и xs остальному.

В вашем случае это будет выглядеть примерно так:

fun sum Node(element,children)::siblings = ...
...