如果NetLogo过程包含多个递归调用,它们是如何处理的?

时间:2015-09-25 16:47:43

标签: recursion netlogo

在模型库中,Galton Box模型中有此过程。每次调用它时,它会在左边的舱口盖和右边的舱口后进行两次递归调用。

to propagate  ;; peg procedure
  if ycor < max-pycor - 2 - 2 * number-of-rows [ die ]
  set pcolor yellow
  set ycor ycor - 2
  hatch 1 [
    set xcor xcor - 1
    propagate
  ]
  hatch 1 [
    set xcor xcor + 1
    propagate
  ]
  die
end

是否保证递归调用的顺序传播&#39;?例如,第一次调用(xcor - 1)是否完全在第二次调用(xcor + 1)开始之前完成?或者初始调用是从第一个开始,然后是第二个开始?有没有保证会先完成?

1 个答案:

答案 0 :(得分:0)

它完全是连续的。 NetLogo中没有并行性或并发性。

所以是的,第一次通话将在第二次通话之前完成。

这是来自Galton Box型号,对吗?您可以按如下方式逐步观察递归:从&#34;基于tick的更新切换模型&#34;到&#34;连续更新&#34;,将速度滑块置于慢速设置,然后按设置按钮。您将看到严格的从左到右,深度优先的遍历。