我有:
type 'a box =
| Item of ('a * 'a box)
| Empty我需要创建函数concat:
val concat : 'a box box -> 'a box连接一盒盒子。参数的所有元素都连接在一起(以相同的顺序)以给出结果。
我不理解如何创建一个像'a box box这样的变量。
我试着去做:
let elt = Item(1, Item(2,Empty))
let elt2 = Item(elt, Item(20, Empty)),但是它失败了!你知道为什么吗?
发布于 2013-03-06 03:18:28
您可以通过执行以下操作创建int box类型的元素:
let elt = Item(3,Empty)现在你可以创建一个int box box类型的元素,方法是将这个东西放入一个box中:
let elt2 = Item(elt,empty)(box实际上只是list类型)
如果有一个列表,它将是:
let elt = [3]
let elt2 = [elt] (* which is [ [3] ], the list containing one list, which contains 3*)关于你自己的例子,第二个例子失败了,因为你试图创建一个包含两个不同东西的盒子:一个盒子和一个整数。但是一个盒子只能包含一种类型的东西。
https://stackoverflow.com/questions/15232222
复制相似问题