如何在 NetLogo 中逐项减去一个列表(就像在 R 中一样)

How to subtract a list from another item by item in NetLogo (like in R)

编辑:应该适用于 NetLogo 5.3.1。

我的问题: 我在 NetLogo 中有两个列表,例如 [13 8 2 20 8][7 7 7 7 7],它们的长度相同。我想从前面的项目中逐项减去后面的列表,即 [(13-7) (8-7) (2-7) (20-7) (8-7)]。 因此结果必须是:[6 1 -5 13 1]

在 R 中非常简单:

> a <- c(13, 8, 2, 20, 8)
> b <- rep(7, 5)
> c <- a - b
> print(c)
[1]  6  1 -5 13  1

不幸的是,NetLogo 不能以这种方便的方式工作。

我的问题: 如何在 NetLogo 中对此进行编码?

如果您的列表长度相同,您可以使用 map 对多个列表执行操作。然后给定的报告者 运行 对所有第一项进行一次,然后对所有第二项进行一次,...。结果是一个与输入列表长度相同的列表。

show (map - [13 8 2 20 8] [7 7 7 7 7])
observer: [6 1 -5 13 1]