NetLogo 传递 link 品种作为过程参数
NetLogo passing link breed as procedure parameter
我正在编写一个实用程序,用于识别某个 turtle-set 中所有节点的所有新 link-neighbors
。我希望能够对任何 link 品种使用相同的程序。该函数看起来像这样(未测试)。
to-report all-neighbours [ NODESET EDGETYPE ]
let nbr nobody
ask NODESET [ set nbr (turtle-set nbr EDGETYPE-neighbors) ]
report nbr with [ not member? self NODESET ]
end
这将使语法检查器失败,因为 EDGETYPE-neighbors 不是 breed-neighbors
的有效版本。有没有办法将 link 品种传递给被调用的过程?
我想我可以通过 nw:set-context NODESET EDGETYPE
和 nw:turtles-in-radius 1
使用网络扩展来解决问题,但我想要一个更好的方法并且可能需要为 [=22= 做同样的一般事情] 没有 nw 版本的程序。
获取指定品种的所有链接并使用[other-end]
获取海龟:
to-report all-neighbours [ NODESET EDGETYPE ]
let nbr nobody
ask NODESET [set nbr (turtle-set nbr [other-end] of (my-links with [breed = EDGETYPE]))]
report nbr with [ not member? self NODESET ]
end
用法(如果您的品种是 relations/relation):
ask all-neighbours (turtle-set turtle 0) relations [show self]
我正在编写一个实用程序,用于识别某个 turtle-set 中所有节点的所有新 link-neighbors
。我希望能够对任何 link 品种使用相同的程序。该函数看起来像这样(未测试)。
to-report all-neighbours [ NODESET EDGETYPE ]
let nbr nobody
ask NODESET [ set nbr (turtle-set nbr EDGETYPE-neighbors) ]
report nbr with [ not member? self NODESET ]
end
这将使语法检查器失败,因为 EDGETYPE-neighbors 不是 breed-neighbors
的有效版本。有没有办法将 link 品种传递给被调用的过程?
我想我可以通过 nw:set-context NODESET EDGETYPE
和 nw:turtles-in-radius 1
使用网络扩展来解决问题,但我想要一个更好的方法并且可能需要为 [=22= 做同样的一般事情] 没有 nw 版本的程序。
获取指定品种的所有链接并使用[other-end]
获取海龟:
to-report all-neighbours [ NODESET EDGETYPE ]
let nbr nobody
ask NODESET [set nbr (turtle-set nbr [other-end] of (my-links with [breed = EDGETYPE]))]
report nbr with [ not member? self NODESET ]
end
用法(如果您的品种是 relations/relation):
ask all-neighbours (turtle-set turtle 0) relations [show self]