从列表中挑选元素

Picking elements from a list

我正在努力提高我对 NetLogo 中列表的理解。 很快,我将在列表中添加和挑选(和删除)项目。每只海龟都有自己的列表。 每个列表应包含按时间顺序排列的项目,从最近到最旧。一旦海龟选择了一个项目,邻居们就会将这个项目放在他们列表的顶部(对于选择该项目的海龟也是如此)。我试图做的是:

rnd:weighted-one-of-list mylist [ [ii] -> ii ] ; pick one of the most recent items already in the list
set mylist lput old_item mylist print "Old item" ; add items to the list

使用 JenB 在之前 post 中建议的扩展。 使用从列表中选择一个项目(旧项目)的条件是 mylist 不为空(if empty? mylist)。
我的问题是像我那样使用扩展名选择项目是否正确。

更新:列表按以下方式组成: 我决定创建一个新项目,item 4quality 2(质量是 [0,5] 中的一个参数)。 我将此项目添加到我的列表 (item 4, item3, item2, item1) - 从最近到最旧 - 质量分别为 item4 2, item3 1, item2 2, item1 5,并在邻居的列表中:例如 neighbour1,将列表 (item4, item 11, item 10,..)quality 2, 3, 1 分别。 我期望的是根据质量参数从列表中选择一个项目。这意味着我将从我的列表中选择 item1。我的邻居会选择 item11,因为它的质量等于 3,即同类中最高的。

感谢您的帮助。

我正在阅读https://ccl.northwestern.edu/netlogo/docs/rnd.html

rnd:weighted-one-of-list mylist [ [ii] -> ii ]

is it correct to pick an item using the extension in that way?

是的,根据文档,这是正确的用法。