Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sml 新列表数据类型_Sml_Smlnj - Fatal编程技术网

Sml 新列表数据类型

Sml 新列表数据类型,sml,smlnj,Sml,Smlnj,我如何在ML中定义新的数据类型,让我们假设newList,它可以由元素'a(int、real等)的列表、嵌套列表组成,例如: 如果我的类型“a”是int,则值可能是:[1]、[1、[4]]、[1、[5]、[5]]等。 提前谢谢你的帮助 已编辑 很抱歉,示例中没有1,不同的int列表,我删除了它您不能。列表中的所有元素必须为同一类型。在您的示例中,有些元素属于int类型,有些元素属于int list 您可以创建类似于此树的内容,但语法不太好用:-) 你的例子是: List [E 1] List

我如何在ML中定义新的数据类型,让我们假设newList,它可以由元素'a(int、real等)的列表、嵌套列表组成,例如: 如果我的类型“a”是int,则值可能是:[1]、[1、[4]]、[1、[5]、[5]]等。 提前谢谢你的帮助

已编辑
很抱歉,示例中没有1,不同的int列表,我删除了它

您不能。列表中的所有元素必须为同一类型。在您的示例中,有些元素属于
int
类型,有些元素属于
int list

您可以创建类似于此树的内容,但语法不太好用:-)

你的例子是:

List [E 1]

List [E 1, List [E 4]]

List [E 1, List [E 5], List [List [E 5]]]

@菜鸟,我已经更新了我的答案,所以它包含一个多态树:-)顺便说一句,我明天有标准ML考试。运动一下很好:-)
datatype 'a multiList = E of 'a
                      | List of 'a multiList list
List [E 1]

List [E 1, List [E 4]]

List [E 1, List [E 5], List [List [E 5]]]