我想有选择地修改列表中的某些成员但不是全部取决于成员是否满足某些条件。例如,在值列表中,我想从大于9的所有值中减去9。
我试过
set nodeext2 map nodeext2 [ifelse-value (? > 9) [? - 9][?]]
但得到'预期的'常数'错误。我也尝试了if-else和玩括号。谁能帮我?我觉得好像这可能在某个地方明确说明但我找不到。
答案 0 :(得分:4)
您只是颠倒了map
参数的顺序:记者必须在列表前面。尝试:
set nodeext2 map [ifelse-value (? > 9) [? - 9][?]] nodeext2
您在ifelse-value
上收到“预期的常量”消息,因为编译器期望map
的第二个参数成为列表,因此尝试将[ifelse-value (? > 9) [? - 9][?]]
解释为一个({1}}并且因为列表由常量构成而失败,ifelse-value
不是。