在两个列表之间进行划分并将结果存储在NetLogo列表中

时间:2018-06-22 14:55:15

标签: netlogo

我有两个长度相同的列表。我想一一分开。第一个列表中的第一个元素除以第二个列表中的第一个元素。并将结果存储在新列表中。 假设有两个名为 a b 的列表。结果的新列表是 c 。 我现在有这样的东西:

foreach a b [[element-a element-b] -> element-a / element-b]

但是它不起作用。以及如何将结果存储在 c 中?

1 个答案:

答案 0 :(得分:1)

您需要的不是foreach,而是map

to demo
  let list-a [ 4 12 30 ]
  let list-b [ 2  3  5 ]  
  print (map [ [a b] -> a / b ] list-a list-b) ; long syntax
  print (map / list-a list-b) ; concise syntax
end

每当您要从一个或多个列表中创建一个新列表时,map最有可能是最佳解决方案。这是NetLogo中最有用的原语之一。

请注意,您需要在表达式两边加上括号,因为您要将多个列表传递到map