Netlogo:“地图”是否仅限于两个列表?

Netlogo: is ´map´ limited to two lists?

当我在 NL 6.1.1 上尝试以下命令时:

(map + [1 2 3] [2 4 6] [7 8 9])

我得到的结果是 [3 6 9] 而不是 [10 14 18],这意味着总和中只考虑了前两个列表。

有人知道如何更正此问题并考虑所有三个列表吗?

根据 the documentation in the NetLogo dictionarymap 报告者确实支持多个列表,但是 map 希望提供的匿名报告者采用与您提供的列表数量相等的参数。在您的情况下,您不能使用 + 快捷方式,因为 + 需要 2 个参数,而我们有 3 个列表。

所以你可以这样做:

(map [ [a b c] -> a + b + c ] [1 2 3] [2 4 6] [7 8 9])

如果您需要处理添加任意数量的列表(如在一个列表变量中,根据您的程序,其中可能包含 2、3、4 或更多列表),您可以使用 the reduce reporter:

set vals [[1 2 3] [2 4 6] [7 8 9] [10 11 12]]
reduce [ [a b] -> (map + a b) ] vals