我在标准ML中做了一个家庭作业问题,我们刚刚开始学习,并且我试图计算一棵树中叶子的总和。我怎样才能访问这棵树节点中的元素?
答案 0 :(得分:0)
通过模式匹配解构复杂数据类型。大多数情况下,您在函数参数中执行此操作。如果函数f
将列表作为参数,而不是将其定义为
fun f X = ...
你会说
fun f x::xs = ...
现在,当您向其传递一个列表时,它会自动将x
分配给第一个元素,将xs
分配给其余元素。
在你的情况下,它看起来像这样:
fun sum Node(element,children)::siblings = ...