首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Oz中创建列表?

如何在Oz中创建列表?
EN

Stack Overflow用户
提问于 2009-09-23 01:11:16
回答 2查看 4.8K关注 0票数 6

我正在尝试使用以下代码在Oz中创建一个列表:

代码语言:javascript
复制
local Loop10 Xs in
   proc {Loop10 I}
      Xs={List.append Xs I}
      if I == 10 then skip
      else
     {Browse I}
     {Loop10 I+1}
      end
      {Browse Xs}
   end
{Loop10 0}
end

Mozart compiler显示代码已被接受,但没有打开浏览窗口。我想做的就是在Oz中创建一个列表。

代码有什么问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-26 21:50:05

我不确定这是否是您想要的,但是要创建一个包含X和Y(包括X和Y)之间的所有整数的列表,您可以这样做:

代码语言:javascript
复制
local
   fun {Loop From To}
      if From > To
      then nil
      else From | {Loop From+1 To}
      end
   end
in
   {Browse {Loop 0 10}} % Displays: [0,1,2,3,4,5,6,7,8,9,10]
end
票数 7
EN

Stack Overflow用户

发布于 2010-01-02 01:29:58

另外,您没有获得任何浏览器窗口的原因是由于下面这行代码导致评估线程挂起:

代码语言:javascript
复制
Xs={List.append Xs I}

正如前面提到的,一个变量只能赋值一次,但这一行还存在其他问题。您尝试将Xs附加到i,但Xs仍未绑定。线程因此挂起,直到为Xs分配了一个值。

以交互方式输入以下内容:

代码语言:javascript
复制
declare Xs in
{Browse {List.append Xs [2 3 4]}}

正如您看到的没有发生任何事情一样,浏览器也不会打开。现在输入以下内容:

代码语言:javascript
复制
Xs= [1]

由于Xs被绑定,它将解锁第一个求值“线程”,浏览器将弹出。

另外,很抱歉回答得太晚了,我只是对Oz感兴趣。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1463464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档