在 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,因为 foreachask 不同,代理没有 运行 命令,它只是 运行 命令每次传入一个项目作为命令的参数。