Sml 访问树中的节点/叶

Sml 访问树中的节点/叶,sml,smlnj,Sml,Smlnj,我正在用标准ML做作业,我们刚刚开始学习,我一直在努力用计算机计算树上树叶的总数。如何访问此树节点中的元素 您可以通过模式匹配来解构复杂的数据类型。大多数情况下,都是在函数参数中这样做的。如果函数f将列表作为参数,而不是将其定义为 fun f X = ... 你会说 fun f x::xs = ... 现在,当您向它传递一个列表时,它将自动将x分配给第一个元素,并将xs分配给其余元素 在你的例子中,它看起来是这样的: fun sum Node(element,children)::sibli

我正在用标准ML做作业,我们刚刚开始学习,我一直在努力用计算机计算树上树叶的总数。如何访问此树节点中的元素


您可以通过模式匹配来解构复杂的数据类型。大多数情况下,都是在函数参数中这样做的。如果函数
f
将列表作为参数,而不是将其定义为

fun f X = ...
你会说

fun f x::xs = ...
现在,当您向它传递一个列表时,它将自动将
x
分配给第一个元素,并将
xs
分配给其余元素

在你的例子中,它看起来是这样的:

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