我正在尝试将列表作为参数集传递给to-report函数。下面是一个简单的例子。
Globals
[a
list_of_list]
to setup
ca
set list_of_list (list (list 1 2) (list 3 4))
end
to go
set a function list_of_list
end
to-report function [arg1]
report (map add arg1)
end
to-report add [arg1 arg2]
report arg1 + arg2
end
但是我收到以下错误。
task expected 2 inputs, but only got 1
error while observer running MAP
called by procedure F
called by procedure SETUP
called by Command Center
我希望在将列表元素作为函数参数传递后得到的答案是[3 7]。
我正在处理的真正任务是使用更深层次的嵌套列表复杂得多,但是这段代码给出了我想要做的事情的想法。我应该考虑使用Matrix扩展来更轻松地处理嵌套列表吗?
答案 0 :(得分:0)
将add
功能更改为
to-report add [lst]
report reduce + lst
end
答案 1 :(得分:0)
替换
map add arg1
与
map [add first ? last ?] arg1
如果您需要更通用的解决方案,请参阅https://github.com/NetLogo/NetLogo/issues/539处的Bryan Head的listify-task
程序。