NETLOGO:将代理的属性列表添加到列表列表中

Luc*_* G. 1 list nested-lists netlogo

你好我正在使用Netlogo,我正在尝试创建一个列表列表,其中每个子列表都是几个代理的属性.特别是我将列表声明为全局变量,并将其初始化为空列表.然后我要求每个代理将其attribute_1和attribute_2的列表添加到主列表中.像这样:

globals[mainlist]
set mainlist []
ask agents[
set mainlist sentence [mainlist] [attribute_1 attribute_2 ]
]
Run Code Online (Sandbox Code Playgroud)

这应该创建一个由前一个主列表和列表[attribute_1 attribute_2]组成的新列表.不幸的是,这不起作用,我得到错误:EXPECTED LITERAL VALUE引用"主列表".我该如何编写代码以正确的方式创建列表列表?

Nic*_*tte 6

Tyr的答案在技术上是正确的,但我想提出一个更加网络化的方法来做到这一点.通常,在NetLogo中,您不必一次构建一个元素列表.如果你发现自己这样做,你可能想停下来尝试以不同的方式解决问题.

在这种特殊情况下,您可以简单地利用of原语:

[ (list attribute_1 attribute_2) ] of agents
Run Code Online (Sandbox Code Playgroud)

这是一个完整的例子:

breed [agents an-agent]
agents-own [attribute_1 attribute_2]
globals [mainlist]

to setup
  clear-all
  create-agents 10 [
    set attribute_1 random 10
    set attribute_2 random 10
  ]
  set mainlist [ (list attribute_1 attribute_2) ] of agents
  print mainlist
end
Run Code Online (Sandbox Code Playgroud)