NetLogo地图问题

NetLogo地图问题,netlogo,Netlogo,当我在指挥中心输入(map[?1+?2][1 2 3][2 4 6])时,它工作正常。但是当我输入这个代码时 to test (map [?1 + ?2] [1 2 3] [2 4 6]) end 我得到诊断:“预期命令。”并突出显示map。我被难住了。如有建议,将不胜感激。谢谢 (我使用的是NetLogo 5.1.0。)问题在于map不被视为命令(如诊断所述)。当我将map替换为foreach(并将函数放在末尾)就可以了 事实上,这正是我一开始真正想要的。我使用了map,因为它的副作用是

当我在指挥中心输入
(map[?1+?2][1 2 3][2 4 6])
时,它工作正常。但是当我输入这个代码时

to test
  (map [?1 + ?2] [1 2 3] [2 4 6])
end
我得到诊断:“预期命令。”并突出显示
map
。我被难住了。如有建议,将不胜感激。谢谢


(我使用的是NetLogo 5.1.0。)

问题在于
map
不被视为命令(如诊断所述)。当我将
map
替换为
foreach
(并将函数放在末尾)就可以了


事实上,这正是我一开始真正想要的。我使用了
map
,因为它的副作用是遍历多个列表,而不是返回一个列表。我的错误。

为了方便用户,命令中心允许您设置命令的“上下文”,并根据上下文进行一些额外的解释。问题不在于
map
reporter失败,而是它报告了一个列表,您需要一个命令来说明如何处理该列表


在命令中心输入
(map[?1+?2][1 2 3][2 4 6])
后,不仅要查看结果,还要查看实际执行的代码(结果正上方)。如果您将该代码放入
测试过程中,它将起作用。

您的代码不起作用,因为您正在使用map生成一个新列表,但您没有将该列表分配给任何变量。您是对的,map不是命令原语,它是一个reporter原语,因此它返回一个值,您必须将该值放在某个位置,比如在屏幕上打印:

to test
    print (map [?1 + ?2] [1 2 3] [2 4 6])
end
或者将其存储在变量中:

to test
    let a-variable (map [?1 + ?2] [1 2 3] [2 4 6])
    print a-variable
end

你说的“做一点额外的解释”是指“为记者的表达预先准备
show
”吗?差不多。但是,例如,如果您将命令中心上下文设置为
turtles
,那么在命令行中输入reporter
rpt
将被解释为
ask turtles[show rpt]
。您应该将其添加为问题的编辑,而不是答案