我有一个列表,其中包含列表中包含两个条目的元素:
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的新手,我很乐意得到关于此的建议,如果之前有关于此的帖子我没有看到,我很乐意得到一个提示!谢谢!
答案 0 :(得分:3)
您正在寻找map
而不是foreach
。它的工作原理与foreach
非常相似,只是它将结果返回到列表中(而foreach
只是为列表中的每个项执行命令)。此外,在foreach
上使用map
或list1
时匿名过程的参数将是包含这两个项目的列表。因此,您需要使用first
来获取第一项:
let weigh_dem t_d_f * price_w - sum map [ pair -> first pair ] list1