将 NL-5 中的匿名记者转换为 NL6
Converting an anonymous reporter in NL-5 to NL6
我是 NetLogo 的新手,正在尝试在 v6 上使用为 v5 编写的模型,遇到了一些转换挑战。
通过阅读文档,替换 ?使用匿名函数似乎很容易理解,但是我看到的大多数示例似乎都集中在 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 [ ]
如有任何建议,我们将不胜感激。
我想我现在明白了。这些工作......我需要摆脱'?'
#loop-1
foreach sort-by [[a b] -> [[who] of a > [who] of b]] aset [ ]
#loop-2
foreach sort-by [[x y] -> x < y ] bset [ ]
我不知道所有的上下文(循环的目的是什么?)。
我想,他们应该按 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
end
我是 NetLogo 的新手,正在尝试在 v6 上使用为 v5 编写的模型,遇到了一些转换挑战。
通过阅读文档,替换 ?使用匿名函数似乎很容易理解,但是我看到的大多数示例似乎都集中在 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 [ ]
如有任何建议,我们将不胜感激。
我想我现在明白了。这些工作......我需要摆脱'?'
#loop-1
foreach sort-by [[a b] -> [[who] of a > [who] of b]] aset [ ]
#loop-2
foreach sort-by [[x y] -> x < y ] bset [ ]
我不知道所有的上下文(循环的目的是什么?)。
我想,他们应该按 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
end