gpt4 book ai didi

report - NetLogo:TO-REPORT的含义是为假人解释的吗?

转载 作者:行者123 更新时间:2023-12-04 03:14:58 25 4
gpt4 key购买 nike

我有一个问题需要了解NetLogo中to-reportreport的作用,即使它看起来似乎很有用,我也找不到真正用“人类风格”语言编写的帮助。

在NetLogo字典http://ccl.northwestern.edu/netlogo/docs/dictionary.html#report中,我可以找到to-report的定义:

to-report procedure-name
to-report procedure-name [input1 ...]
Used to begin a reporter procedure.

The body of the procedure should use report to report a value for the procedure. See report.

report:
report value
Immediately exits from the current to-report procedure and reports value as the result of that procedure. report and to-report are always used in conjunction with each other. See to-report for a discussion of how to use them.

因此,似乎 to-reportreport计算了一些值并报告了该值。

因此,当我尝试添加
to-report average [a b c]
report (a + b + c) / 2
end

到我的代码,然后在我的代码p.e.中的某处使用 average变量:
to go 
...
print average
tick
end

我有一个错误: AVERAGE expected 3 inputs。当我尝试在 globals [a b c]中创建变量[a b c]时,出现了 There is already a global variable called A错误。
如果我在 [a b c]过程中定义变量 to-report:
to-report average [a b c]
set a 1
set b 2
set c 3
report (a + b + c) / 2
end

我的错误再次是 AVERAGE expected 3 inputs

因此, 我怎样才能简单地测试报告过程的有用性?并将其正确放置在我的代码中以查看其实际作用? 从Urban Suite-Economic Disparity( http://ccl.northwestern.edu/netlogo/models/UrbanSuite-EconomicDisparity)中,我看到to-report用于计算与每个补丁相关的值:
to-report patch-utility-for-poor
report ( ( 1 / (sddist / 100 + 0.1) ) ^ ( 1 - poor-price-priority ) ) * ( ( 1 / price ) ^ ( 1 + poor-price-priority ) )
end

但是,此报告值未直接定义为补丁变量,这增加了我的困惑...

enter image description here

谢谢 !

最佳答案

一个函数可以接受一些输入(通常是一个或多个变量或值)并返回一些输出(通常是单个值)。您可以使用函数头中的to-report指定函数返回一个值,而报告则返回实际值。

您的错误归因于您从未将参数传递给平均函数的事实

to go 
...
print average
tick
end

应该
to go 
...
print average 5 2 3 ;;a = 5, b = 2, c =3
tick
end

在平均函数中,您不应重新分配a,b和c的值。

每当您要从函数返回结果时,都应该使用报告。

关于report - NetLogo:TO-REPORT的含义是为假人解释的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37013239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com