Oz中List模块的使用方法
How to use the module List in Oz
我在 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 的新手
问题出在您传递给 List.length
的参数中。您不应使用“+”符号。它是加法运算符。只需调用
{List.length L ?I}
文档中使用“+”符号来说明参数的用途。 '+' 符号表示输入参数,而 '?'表示输出参数。
此外,您可以使用'?'为了清楚起见,在您的代码中,Oz 支持它。
此外,List
模块应该默认导入。所以你不必定义一个使用List.length
的函数Length
,你可以简单地使用
{Browse {Length [1 2 3 4 5]}}
浏览作为参数给出的列表的长度。
我在 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 的新手
问题出在您传递给 List.length
的参数中。您不应使用“+”符号。它是加法运算符。只需调用
{List.length L ?I}
文档中使用“+”符号来说明参数的用途。 '+' 符号表示输入参数,而 '?'表示输出参数。
此外,您可以使用'?'为了清楚起见,在您的代码中,Oz 支持它。
此外,List
模块应该默认导入。所以你不必定义一个使用List.length
的函数Length
,你可以简单地使用
{Browse {Length [1 2 3 4 5]}}
浏览作为参数给出的列表的长度。