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