我有这行代码:
set SSB sum [foreach [foglie with [ipotetico? = false]] [((([media] of self ) - media-tot ) ^ 2) * ([larg] of self * [altez] of self)]]
我无法弄清楚为什么它会给我错误:
预期常数
我发现了以下漏洞,但它看起来不优雅,甚至可能更慢:
set SSB 0
ask foglie with [ipotetico? = false] [ set SSB (SSB + (( [media] of self - media-tot) ^ 2) * ([larg] of self * [altez] of self)) ]
答案 0 :(得分:3)
一个好问题将包括问题的 minimal 示例。在这种情况下,在您上面的第一次尝试中,看起来您不了解代理集和列表之间的区别,也不了解foreach
的使用。所以你需要阅读这个。
sum
需要列表作为输入list
list
,您也会得到一个包含代理集作为元素的列表,而不是代理列表foreach
未返回列表(但map
确实如此)假设media
,larg
和altez
属于雾状属性且media-tot
是全局属性,您可以执行以下操作:
sum [(media - media-tot) ^ 2 * (larg * altez)] of (foglie with [ipotetico? = false])