我有两个长度相同的列表。我想一一分开。第一个列表中的第一个元素除以第二个列表中的第一个元素。并将结果存储在新列表中。 假设有两个名为 a 和 b 的列表。结果的新列表是 c 。 我现在有这样的东西:
foreach a b [[element-a element-b] -> element-a / element-b]
但是它不起作用。以及如何将结果存储在 c 中?
答案 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
。