1

所以我得到了这个:

datatype intnest = INT of int
                    | LIST of intnest list;

我被告知要编写一个函数来将 intnest 中的所有整数相加。一个问题是我真的不明白 intnest 可能是什么。你能给我一个有效的内嵌的例子吗?

我需要一些东西来检查我写的方法,我尝试的任何东西都不会被接受。

我尝试过诸如:

val in1 = [1,2,3,[1,2,3]];
val in2 = [1,2,3,[1]];

等等......所以如果你能给我一个例子,它会很有帮助。

谢谢!

4

1 回答 1

2

这个想法是使用从基本案例开始的构造函数来构建值。例如,我们有这样的构造函数INT of int

  • INT 1是类型intnest
  • INT 2是类型intnest
  • INT 3是类型intnest

将三个值放入一个列表中,您[INT 1, INT 2, INT 3]的类型为intnest list. 现在看第二个构造函数LIST of intnest list,你可以很容易地看到

LIST [INT 1, INT 2, INT 3]是一个intnest

重复该过程,您还可以:

  • [INT 1, INT 2, INT 3, LIST [INT 1, INT 2, INT 3]]是一个intnest list
  • LIST [INT 1, INT 2, INT 3, LIST [INT 1, INT 2, INT 3]]是一个intnest
于 2012-10-24T17:31:17.233 回答