我是NetLogo的新手,尝试使用v5在v6上编写的模型,并遇到了一些转换方面的挑战。
从阅读文档,替换?使用匿名函数似乎很容易理解,但是我所看到的大多数示例似乎都集中在foreach循环上,而没有足够地提到排序。当我应用我认为应该起作用的转换时,我碰到了一个错误,表明预期会出现文字。
我有一个挑战,这两个循环,特别是
#loop-1
foreach sort-by [[who] of ?1 < [who] of ?2] aset[ ]
#loop-2
foreach sort-by [ ?1 < ?2 ] bset [ ]如果按下面的方式重写这两者,就会得到一个预期为文字的错误。
#loop-1
foreach sort-by [[?1 ?2] -> [[who] of ?1 > [who] of ?2]] aset [ ]
#loop-2
foreach sort-by [[?1 ?2] -> [ ?1 < ?2 ]] bset [ ]如有任何建议,我将不胜感激。
发布于 2022-01-20 10:14:00
我想我现在想明白了。这些工作..。我需要摆脱“?”
#loop-1
foreach sort-by [[a b] -> [[who] of a > [who] of b]] aset [ ]
#loop-2
foreach sort-by [[x y] -> x < y ] bset [ ]发布于 2022-01-20 10:29:51
我不知道所有的上下文(循环的目的是什么?)我想,他们应该按照他们的who号对海龟进行分类。
你不必(但可以)摆脱'?‘。错误来自于在->之后将代码写在括号中。
如果有另一个上下文,foreach可能会有用,但据我所知,它可以被删除。
这样做是有效的:
to go
crt 5
let aset turtles with [who <= 3]
let bset turtles with [who >= 3]
;loop-1
show sort-by [[?1 ?2] -> ?1 > ?2] aset
;loop-2
show sort-by [[?1 ?2] -> ?1 < ?2 ] bset
endhttps://stackoverflow.com/questions/70784296
复制相似问题