【问题标题】:Clojure assoc vector behaviourClojure 关联向量行为
【发布时间】:2014-12-14 13:07:15
【问题描述】:

应用于向量的 Clojure assoc 似乎有不一致的行为

当向量中存在索引时,关联替换值

(assoc [1 2 3 4 5] 3 42) => [1 2 3 42 5]

当索引在最后一个旁边时,向量增长(conj 等效)

(assoc [1 2 3 4 5] 5 42) => [1 2 3 4 5 42])

否则IndexOutOfBoundsExcpetion 被抛出

虽然它在某些情况下很有用,例如 reduce assoc,但这可能会导致程序中出现细微的错误

这是预期的行为还是可能是矢量关联中的错误?

【问题讨论】:

  • 真的,很遗憾。

标签: clojure


【解决方案1】:

这是预期的。请参阅assoc 的文档字符串,尤其是关于index 参数的最后一条注释。

这在 p 的顶部进行了描述。 Clojure 编程的第 101 章。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2010-11-05
    • 2017-01-07
    • 2011-04-24
    相关资源
    最近更新 更多