在 foreach 循环中将列表转换为代理
Converting list into agents in foreach loop
这里是一小部分引起问题的代码。
to update-trustt
let rank-tvmratio sort-on [tvmratio] turtles
foreach rank-tvmratio tvmratio -> ask rank-tvmratio [set trustt (trustt + tvmratio)]
end
在此代码中,"rank-tvmratio"
应该带来如下所示的列表:
[(乌龟 56) (乌龟 23) ... (乌龟 9)]
我想做的是让每只海龟更新 "trustt"
变量
分别写在第3行。
根据 Bryan 的建议,我插入了 "->"
并指定 "who" 正在做 "what"。
还是有新的错误信息"Nothing name -> has been defined"
我该如何解决这个问题?我需要你的明智建议。
(实际上变量 tvmratio
来自程序 R,使用 RNetLogo 包。这与此有关吗?)
谢谢
我想这可能是您要找的:
to update-trustt
let rank-tvmratio sort-on [tvmratio] turtles
foreach rank-tvmratio [ t ->
ask t [
set trustt (trustt + rank-tvmratio)
]
]
end
您的代码存在一些问题。首先,给 foreach
的命令需要包含一个参数。您可以使用 ->
语法来执行此操作。 ->
之前的 t
(对于 turtle)是列表中每个项目将作为传入的变量。其次,您需要明确询问 t
,因为 foreach
与 ask
不同,代理没有 运行 命令,它只是 运行 命令每次传入一个项目作为命令的参数。
这里是一小部分引起问题的代码。
to update-trustt
let rank-tvmratio sort-on [tvmratio] turtles
foreach rank-tvmratio tvmratio -> ask rank-tvmratio [set trustt (trustt + tvmratio)]
end
在此代码中,"rank-tvmratio"
应该带来如下所示的列表:
[(乌龟 56) (乌龟 23) ... (乌龟 9)]
我想做的是让每只海龟更新 "trustt"
变量
分别写在第3行。
根据 Bryan 的建议,我插入了 "->"
并指定 "who" 正在做 "what"。
还是有新的错误信息"Nothing name -> has been defined"
我该如何解决这个问题?我需要你的明智建议。
(实际上变量 tvmratio
来自程序 R,使用 RNetLogo 包。这与此有关吗?)
谢谢
我想这可能是您要找的:
to update-trustt
let rank-tvmratio sort-on [tvmratio] turtles
foreach rank-tvmratio [ t ->
ask t [
set trustt (trustt + rank-tvmratio)
]
]
end
您的代码存在一些问题。首先,给 foreach
的命令需要包含一个参数。您可以使用 ->
语法来执行此操作。 ->
之前的 t
(对于 turtle)是列表中每个项目将作为传入的变量。其次,您需要明确询问 t
,因为 foreach
与 ask
不同,代理没有 运行 命令,它只是 运行 命令每次传入一个项目作为命令的参数。