Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
List SML中元组的处理_List_Size_Tuples_Sml - Fatal编程技术网

List SML中元组的处理

List SML中元组的处理,list,size,tuples,sml,List,Size,Tuples,Sml,我有一个赋值,我需要取一个元组并返回另一个元组,大小相同,某些元素发生了变化。问题是我不知道如何处理未定义大小的元组。该函数需要能够处理任何大小的元组。我的想法是让元组成为一个我可以更容易处理的列表,通过制作一个递归帮助函数来获取元组中的元素#1,并将其转换为对同一个函数的调用,该函数将再次将元素#2消耗到递归中,直到没有元素为止,但是当我得到#n+1,其中n是元组中的项目总数时,这只会给出一个错误。 我走错方向了吗?有没有办法找到元组的大小?有没有办法处理这个错误?我知道异常处理,但我不知道如

我有一个赋值,我需要取一个元组并返回另一个元组,大小相同,某些元素发生了变化。问题是我不知道如何处理未定义大小的元组。该函数需要能够处理任何大小的元组。我的想法是让元组成为一个我可以更容易处理的列表,通过制作一个递归帮助函数来获取元组中的元素#1,并将其转换为对同一个函数的调用,该函数将再次将元素#2消耗到递归中,直到没有元素为止,但是当我得到#n+1,其中n是元组中的项目总数时,这只会给出一个错误。 我走错方向了吗?有没有办法找到元组的大小?有没有办法处理这个错误?我知道异常处理,但我不知道如何将其应用到他的案例中,如果可能的话


问题是创建一个名为subst的函数,这样subst(e',x)e=[e'/x]e,即函数subst将用表达式e替换表达式e'中任意出现的变量x。为元组添加适当的大小写

该函数需要能够处理任何大小的元组

这是不可能做到的。不同大小的元组是完全不同和不相关的类型;没有任何类型的函数具有足够的多态性,可以同时是
'a*'b->…
'a*'b*'c->…
,除非它只是
'a->…
类型(即,它接受任何参数,对元组没有特殊的理解)


(内置的符号
#1
#2
等都是重载函数,适用于任何元组类型,但这是一种魔法,你不能复制。如果不给编译器足够的信息来推断
f
的确切类型,你甚至不能编写类似
val f=#1
的东西;你必须编写例如
val f:“a*'b->'a=#1
指定
f
返回一对中的第一个字段。)

那么我不知道如何做这个赋值……我必须制作一个程序,查看某些变量的大小不确定的元组,然后用其他变量替换它们。@Arsarcanum:你可能误解了你的赋值,因为你所描述的实际上是不可能的。标准ML根本没有任何变量的概念“一个大小不确定的元组”。我也被它弄糊涂了,所以我特别问我的教授“你的意思是元组可以是任意大小的吗?”(因为作业中说元组是(t0,t1,…,tn),她说是…@Arsarcanum:你能编辑你的问题以包含作业的确切文本吗?创建一个名为subst的函数,这样subst(e',x)e=[e'/x]e,即函数subst将用表达式e替换表达式e'中任意出现的变量x。为元组添加适当的大小写。