NetLogo列表和条件修改

时间:2014-02-04 12:24:28

标签: if-statement map foreach netlogo

我想有选择地修改列表中的某些成员但不是全部取决于成员是否满足某些条件。例如,在值列表中,我想从大于9的所有值中减去9。

我试过

set nodeext2 map nodeext2 [ifelse-value (? > 9)  [? - 9][?]]

但得到'预期的'常数'错误。我也尝试了if-else和玩括号。谁能帮我?我觉得好像这可能在某个地方明确说明但我找不到。

1 个答案:

答案 0 :(得分:4)

您只是颠倒了map参数的顺序:记者必须在列表前面。尝试:

set nodeext2 map [ifelse-value (? > 9)  [? - 9][?]] nodeext2

您在ifelse-value上收到“预期的常量”消息,因为编译器期望map的第二个参数成为列表,因此尝试将[ifelse-value (? > 9) [? - 9][?]]解释为一个({1}}并且因为列表由常量构成而失败,ifelse-value不是。