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)
,我认为。