Recursion 如果NetLogo过程包含多个递归调用,如何处理它们?
在模型库中,Galton Box模型中有此过程。每次调用它时,它都会在左侧的图案填充和右侧的图案填充之后进行两次递归调用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
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中没有并行性或并发性 所以,是的,第一个电话会在第二个开始之前完成 这是高尔顿盒子模型的,对吗?您可以按如下步骤观察递归的发生:将模型从“基于记号的更新”切换到“连续更新”,将速度滑块置于慢速设置,然后按设置按钮。您将看到一个严格的从左到右的深度优先遍历