困惑于“如何”;其他";在NetLogo中工作

困惑于“如何”;其他";在NetLogo中工作,netlogo,Netlogo,netlogo文档给出了以下示例 show count turtles-here => 10 show count other turtles-here => 9 文档中说“other”命令排除了“this”代理。我的问题是。。。哪个特工?似乎此命令可以在观察者上下文中运行,因此没有代理。或者至少在本例中,上下文可以是补丁上下文,在这种情况下,“其他”将排除所有海龟?是否有某种机制来设置特定代理的上下文?也许: ask agent [ show count other tur

netlogo文档给出了以下示例

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 ]
]
(请注意,这可以用更简洁的方式表达,但由于
我自己
其他
更容易混淆,而且命名更糟糕,所以我在这里避免使用它)

似乎此命令可以在观察者上下文中运行,因此没有代理


这实际上是一个错误!我在这里提出了一个问题:

非常感谢您验证我的怀疑(并且做得非常彻底!)。我很震惊,其他作品在观察家的背景下。在我发布了这个问题之后,在这个过程中几乎回答了我自己的问题,我也“困惑”于为什么其他人的文档中有这样一个不完整的示例。这是一个很棒的语言/环境,但它确实有自己的特点,显然这些特点也延伸到了文档中!