NetLogo:总结列表中列表的第一个元素

时间:2017-06-01 11:32:59

标签: list netlogo

我有一个列表,其中包含列表中包含两个条目的元素:

list1 [[15,w1] [20,w2] [30,w3] ...]

现在,在另一个函数中,我想在list1的每个列表中包含第一个元素的总和(即15 + 20 +30 ......)

我尝试过的是

let weigh_dem (t_d_f * price_w) - (sum (foreach list1 [[a b] -> a] )) 

但我收到错误消息“预期记者。

由于我是netlogo的新手,我很乐意得到关于此的建议,如果之前有关于此的帖子我没有看到,我很乐意得到一个提示!谢谢!

1 个答案:

答案 0 :(得分:3)

您正在寻找map而不是foreach。它的工作原理与foreach非常相似,只是它将结果返回到列表中(而foreach只是为列表中的每个项执行命令)。此外,在foreach上使用maplist1时匿名过程的参数将是包含这两个项目的列表。因此,您需要使用first来获取第一项:

let weigh_dem t_d_f * price_w - sum map [ pair -> first pair ] list1