Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/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
Algorithm SML计数呼叫和激活记录,迭代算法的效率_Algorithm_Runtime_Sml - Fatal编程技术网

Algorithm SML计数呼叫和激活记录,迭代算法的效率

Algorithm SML计数呼叫和激活记录,迭代算法的效率,algorithm,runtime,sml,Algorithm,Runtime,Sml,这是我的作业,叫做时间和空间要求 注意:与我一起工作的导师说他没有看到用例,所以我们使用了(1,2,3,4,5,6)的列表 到目前为止,我们拥有的是: a。2次调用len函数和2次激活记录 b。4次调用get函数和4次激活记录 c。我们相信这样更有效。只能使用单个激活记录,因为它可以重用,并且可以使用赋值来更改每个调用的函数参数值 基本上,我们的方向正确吗? 非常感谢您的帮助 exception Empty; exception Empty; fun middle1(l) = let

这是我的作业,叫做时间和空间要求

注意:与我一起工作的导师说他没有看到用例,所以我们使用了(1,2,3,4,5,6)的列表

到目前为止,我们拥有的是:

a。2次调用
len
函数和2次激活记录

b。4次调用
get
函数和4次激活记录

c。我们相信这样更有效。只能使用单个激活记录,因为它可以重用,并且可以使用赋值来更改每个调用的函数参数值

基本上,我们的方向正确吗?

非常感谢您的帮助

exception Empty;
exception Empty;
fun middle1(l) =
     let fun len(nil)  = 0
           | len(x::l) = 1+len(l)
         and get(n, nil)  = raise Empty
           | get(n, x::l) = if n=1 then x else get(n-1,l)
        in
           get((len(l) div 2)+1, l)
        end;
val middle1 = fn : 'a list -> 'a

middle1([1,2,3,4,5,6]);
val it = 4 : int