【问题标题】: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 不是)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      相关资源
      最近更新 更多