List netlogo中的查找表
我有以下清单:List netlogo中的查找表,list,netlogo,List,Netlogo,我有以下清单: set mylist [[1 100] [3 300]] 当我的输入为1或3时,我使用以下命令返回100或300: to-report itemz [a] report item 1 (item 0 filter [(item 0 ?) = a] mylist) end 这一切都很好: itemz 1 返回100 我想重写列表,使其返回滑块的值,而不是100。我想我需要使用list原语来重新创建我的列表,但我不知道该怎么做 假设您有两个名为s1和s3的滑块,其值应由
set mylist [[1 100] [3 300]]
当我的输入为1或3时,我使用以下命令返回100或300:
to-report itemz [a]
report item 1 (item 0 filter [(item 0 ?) = a] mylist)
end
这一切都很好:
itemz 1
返回100
我想重写列表,使其返回滑块的值,而不是100。我想我需要使用list原语来重新创建我的列表,但我不知道该怎么做 假设您有两个名为
s1
和s3
的滑块,其值应由值1和3引用,您可以按如下方式构建所需列表:
set mylist (list (list 1 s1) (list 3 s3))
并使用您的函数调用
itemz 1
或itemz 3
以获得所需的滑块值这就是表格的用途:
extensions [table]
globals [mytable]
to setup
let mylist [[1 "s1"] [3 "s2"]]
set mytable table:from-list mylist
end
to-report lookup [#key] ;; if you really want ...
let slidername table:get mytable #key
report (runresult slidername)
end
to test
print runresult table:get mytable 1
print lookup 1
print runresult table:get mytable 3
print lookup 3
end
它的可读性更强一些,因为
报告last(first filter[first?=a]mylist)
,我认为。