控制 Netlogo 中过程的顺序

Controling the Order of Procedures in Netlogo

min-one-of 报告了一个我不明白的错误。我知道 min-one-of 需要报告程序。我有这个,在下面标记为 reporter-procedure

但是我的记者程序将另一个程序的输出作为其输入。我的意图是 other-procedure 的输出将作为输入输入 reporter-procedure

Netlogo 告诉我下面代码部分中的另一个程序 other-procedure 应该是一个报告程序。为什么?

请注意 other-procedure 将四个变量作为输入。

let best-taxi min-one-of available-taxis [reporter-procedure ( other-procedure var1 var2 var3 var4) ]

现在,如果我尝试不带括号,错误消息是 reporter-procedure 需要 1 个输入:

let best-taxi min-one-of available-taxis [reporter-procedure other-procedure var1 var2 var3 var4]

所以我猜 reporter-procedure 首先执行。如果是这样,为什么第一组代码(带括号的代码)不能通过先执行 other-procedure 来工作?

该错误实际上与min-one-of没有任何关系。

My intention is that the output of other-procedure will be fed into reporter-procedure as its input.

只有记者有输出。要使 other-procedure 的输出输入 reporter-procedureother-procedure 必须是记者。

您可能只需要用 to-report 而不是 to 来声明 other-procedure,并确保在输出的末尾有一个 report