netlogo

时间:2015-09-29 08:18:14

标签: 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原语来重新创建我的列表,但我无法弄清楚如何去做。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

假设您有两个名为s1s3的滑块,其值应由值1和3引用,您可以按以下方式构建所需的列表:

 set mylist (list (list 1 s1) (list 3 s3))

并使用您的函数调用

itemz 1itemz 3获取所需的滑块值