困惑于“如何”;其他";在NetLogo中工作
netlogo文档给出了以下示例困惑于“如何”;其他";在NetLogo中工作,netlogo,Netlogo,netlogo文档给出了以下示例 show count turtles-here => 10 show count other turtles-here => 9 文档中说“other”命令排除了“this”代理。我的问题是。。。哪个特工?似乎此命令可以在观察者上下文中运行,因此没有代理。或者至少在本例中,上下文可以是补丁上下文,在这种情况下,“其他”将排除所有海龟?是否有某种机制来设置特定代理的上下文?也许: ask agent [ show count other tur
show count turtles-here
=> 10
show count other turtles-here
=> 9
文档中说“other”命令排除了“this”代理。我的问题是。。。哪个特工?似乎此命令可以在观察者上下文中运行,因此没有代理。或者至少在本例中,上下文可以是补丁上下文,在这种情况下,“其他”将排除所有海龟?是否有某种机制来设置特定代理的上下文?也许:
ask agent [
show count other turtles-here
]
在这种情况下,为什么NetLogo代码片段没有包含该内容?被排除的代理就是被询问的代理<设置上下文的code>ask、
ask concurrent
和。比如说,
ask turtle 0 [ show count other turtles ]
统计除海龟0
之外的所有海龟
ask turtles [ show count other turtles ]
逐个迭代每个海龟。在每次迭代中,other
排除当前海龟
other
从不排除不同类型的代理。就是
ask patch 0 0 [ show count other turtles ]
将只计算所有海龟,因为没有一只海龟是补丁0
ask turtles [ show count other turtles ]
可以使用引用当前上下文的代理。other
排除的代理将始终是self
。因此,
ask agents [ show count other agents ]
完全等同于
ask agents [
let this-agent self
show count agents with [ self != this-agent ]
]
(请注意,这可以用更简洁的方式表达,但由于我自己
比其他
更容易混淆,而且命名更糟糕,所以我在这里避免使用它)
似乎此命令可以在观察者上下文中运行,因此没有代理
这实际上是一个错误!我在这里提出了一个问题:非常感谢您验证我的怀疑(并且做得非常彻底!)。我很震惊,其他作品在观察家的背景下。在我发布了这个问题之后,在这个过程中几乎回答了我自己的问题,我也“困惑”于为什么其他人的文档中有这样一个不完整的示例。这是一个很棒的语言/环境,但它确实有自己的特点,显然这些特点也延伸到了文档中!