【问题标题】:How to get the values inside of a datatype variable?如何获取数据类型变量中的值?
【发布时间】:2016-11-16 06:03:45
【问题描述】:

假设我有以下树数据类型:

datatype 'a tree = Empty | Node of 'a * 'a tree * 'a tree;
val x = Node(10, Node(20, Empty, Empty), Node(30, Empty, Empty));

这里,x 是一个 int 树类型的变量。我想知道的是如何在变量 x 的情况下剖析和评估树的不同部分?

例如在这个函数中:

fun add(tree) = ....
add(x);

假设该函数将所有值添加到树的节点中,我将如何准确地获取这些值?我知道你可以做的元组:

#i(x, y, z, ......) 

获取第 i 个索引处的元素。这种类型的功能如何与递归数据类型一起使用?

【问题讨论】:

    标签: sml ml


    【解决方案1】:

    要从递归数据类型中获取值,您只需为其编写一个递归函数即可。

    fun getValues(Node(v,l,r) : 'a tree) : 'a list = getValues(l) @ [v] @ getValues(r)
      | getValues(Empty) = []
    

    【讨论】:

      猜你喜欢
      • 2012-07-22
      • 1970-01-01
      • 2014-09-12
      • 1970-01-01
      • 2021-07-30
      • 1970-01-01
      • 1970-01-01
      • 2012-07-03
      • 2016-12-03
      相关资源
      最近更新 更多