NetLogo:以紧凑的方式对列表中的一个项目执行操作的过程?

时间:2014-01-25 18:35:19

标签: netlogo

NetLogo新手......想知道是否有一个程序以紧凑的方式对列表中的一个项目执行操作(如地图但是对于一个项目)。

例如,假设我想将3添加到列表i中索引为blah的项目中。

现在我这样做:

set blah replace-item i blah (item i blah + 3)

看起来有点笨拙,就像有一个程序可以做到这一点,但我找不到一个。只是想确保我没有错过任何东西。

谢谢! 泰勒

1 个答案:

答案 0 :(得分:1)

没有内置的东西可以做到这一点。但您可以将自己定义为将任务作为输入的过程:

;; replace item i of xs with the result of applying fn to that item
to-report mapping-replace-item [i xs fn]
  report replace-item i xs (runresult fn item i xs)
end

样本用法:

observer> show mapping-replace-item 2 [10 20 30 40] task [? * ?]
observer: [10 20 900 40]