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

Recursion 如果NetLogo过程包含多个递归调用,如何处理它们?,recursion,netlogo,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

在模型库中,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
传播;;钉住程序
如果ycor

对“传播”的递归调用的顺序有任何保证吗?例如,第一个调用(xcor-1)是否在第二个调用(xcor+1)开始之前完全完成?还是第一次呼叫先启动第一个,然后启动第二个?有没有保证哪一个先完成?

这完全是顺序的。NetLogo中没有并行性或并发性

所以,是的,第一个电话会在第二个开始之前完成


这是高尔顿盒子模型的,对吗?您可以按如下步骤观察递归的发生:将模型从“基于记号的更新”切换到“连续更新”,将速度滑块置于慢速设置,然后按设置按钮。您将看到一个严格的从左到右的深度优先遍历。

它完全是顺序的。NetLogo中没有并行性或并发性

所以,是的,第一个电话会在第二个开始之前完成

这是高尔顿盒子模型的,对吗?您可以按如下步骤观察递归的发生:将模型从“基于记号的更新”切换到“连续更新”,将速度滑块置于慢速设置,然后按设置按钮。您将看到一个严格的从左到右的深度优先遍历