在编程指南中,提到匿名过程没有输入:
[[] -> fd 1]
[[] -> count turtles]
我的问题是这种程序的用途是什么?
答案 0 :(得分:3)
如果从grep -rl "\[\] ->"
文件夹运行models
,您将在NetLogo模型库中看到一些示例,即:
Code Examples/Extensions Examples/nw/NW General Examples.nlogo
Code Examples/State Machine Example.nlogo
3D/Sample Models/Termites 3D.nlogo3d
Sample Models/Biology/BeeSmart Hive Finding.nlogo
Sample Models/Chemistry & Physics/Sandpile.nlogo
Sample Models/Social Science/Hotelling's Law.nlogo
IABM Textbook/chapter 8/Sandpile Simple.nlogo
我建议你看看它们,但常见的用途是存储一个你希望乌龟稍后执行的任务。
如果你采用状态机示例,你会看到白蚁有一个next-task
变量被设置为不同的匿名程序,具体取决于白蚁应该做什么。例如,当一个白蚁偶然发现一堆芯片时,它的下一个任务就是放下它目前持有的芯片:
to find-new-pile ;; turtle procedure -- look for yellow patches
if pcolor = yellow
[ set next-task [ [] -> put-down-chip ] ]
end
您并不总是需要这种技术,但它是建模某种系统(例如状态机)的强大工具。