Netlogo 对嵌套列表排序

Netlogo 对嵌套列表排序,netlogo,Netlogo,我发现这段代码用于对嵌套列表进行排序 to-report test let z [[2 3] [1 9] [3 1] ] report sort-by [(first ?1) < (first ?2)] z end 以报告测试 设z[[23][19][31]] 报告排序依据[(第一个?1)first list1

我发现这段代码用于对嵌套列表进行排序

  to-report test 
  let z [[2 3] [1 9] [3 1] ] 
  report sort-by [(first ?1) < (first ?2)] z 
  end 
以报告测试
设z[[23][19][31]]
报告排序依据[(第一个?1)<(第一个?2)]z
结束

这个公式中的第一个?1和第一个?2是什么。它说它们并没有被定义为变量

您是否正在使用NetLogo v6.0?您的代码在v5.3.1中工作,但v6.0使用匿名报告器。它看起来像:

to-report test 
  let z [[2 3] [1 9] [3 1] ] 
  report sort-by [[list1 list2] -> first list1 < first list2] z 
end 
以报告测试
设z[[23][19][31]]
报告排序依据[[list1 list2]->first list1

Charles

类似的解决方案,但还是使用了?1和?2:您好,问题是netlogo版本。谢谢,但这只是对前两个元素进行排序,但我想对嵌套列表中的所有列表进行排序。这样做了。它对列表列表中的所有子列表进行排序<代码>z
,通过其各自的第一个元素。例如,如果
让z[[2 3][1 9][3 1][0 100]
,排序将放置[0 100]在列表的已排序列表的开头。您的初始代码表明您正在按子列表的第一个元素对其进行排序。这是您想要的吗?将
list1
list2
想象为原始代码中的
?1
?2
。您是对的,它对整个列表进行排序。我已经编码太久了,而且我是y brain没有处理最后一个和第一个。更改项目id(first/last)可以在完成排序后更改元素。代码运行良好。谢谢