0

我在 Oz 中找到了一个模块的信息,其中包含对列表进行操作的过程:https ://mozart.github.io/mozart-v1/doc-1.4.0/base/list.html

但我一直在以不同的方式尝试不同的程序,例如:

declare
proc {Length L}
   I
in
   {List.length +L ?I}
   {Browse I}
end

declare
L=[1 2 3 4]
in
{Length L}

我得到的是一个类型错误,我希望你能帮助我知道为什么,我是使用 OZ 的新手

4

1 回答 1

0

问题在于您传递给List.length. 您不应使用“+”符号。它是加法的运算符。只需调用

{List.length L ?I}

文档中使用“+”符号来显示参数的用途。'+' 符号表示输入参数,而 '?' 表示输出参数。

此外,您可以使用“?” 为了清楚起见,在您的代码中,Oz 支持它。

此外,该List模块应默认导入。所以你不必定义一个Length使用的函数List.length,你可以简单地使用

{Browse {Length [1 2 3 4 5]}}

浏览作为参数给出的列表的长度。

于 2015-11-13T09:57:00.593 回答