NetLogo 列表和条件修改
Posted
技术标签:
【中文标题】NetLogo 列表和条件修改【英文标题】:NetLogo Lists and Conditional Modification 【发布时间】:2014-02-28 10:09:38 【问题描述】:我想根据成员是否满足某些条件来选择性地修改列表中的一些成员,但不是全部。例如,在一个值列表中,我想从所有大于 9 的值中减去 9。
我试过了
set nodeext2 map nodeext2 [ifelse-value (? > 9) [? - 9][?]]
但是得到一个“预期为常数”的错误。我也尝试过 if-else 并玩弄括号。谁能帮我?我觉得好像这可能在某处明确说明,但我一直找不到。
【问题讨论】:
【参考方案1】:您只是颠倒了map
参数的顺序:报告者必须排在列表之前。试试:
set nodeext2 map [ifelse-value (? > 9) [? - 9][?]] nodeext2
您在 ifelse-value
上收到“预期为常量”消息,因为编译器预期 map
的第二个参数是一个列表,因此试图将 [ifelse-value (? > 9) [? - 9][?]]
解释为一个(并且由于创建了列表而失败常量,ifelse-value
不是)。
【讨论】:
以上是关于NetLogo 列表和条件修改的主要内容,如果未能解决你的问题,请参考以下文章