在向量中交换两个元素的惯用方法是啥

Posted

技术标签:

【中文标题】在向量中交换两个元素的惯用方法是啥【英文标题】:What is the idiomatic way to swap two elements in a vector在向量中交换两个元素的惯用方法是什么 【发布时间】:2011-08-24 04:27:32 【问题描述】:

是否有更好或更简洁的方法来执行以下操作?

(defn swap [v i1 i2]
  "swap two positions in a vector"
  (let [e1 (v i1)
        e2 (v i2)]
       (-> (assoc v i1 e2)
       (assoc i2 e1))))

【问题讨论】:

【参考方案1】:

我也想不出一个特别优雅的解决方案。不过我是这样写的:

(defn swap [v i1 i2] 
   (asso­c v i2 (v i1) i1 (v i2)))­

【讨论】:

我更喜欢你的实现。

以上是关于在向量中交换两个元素的惯用方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

一次循环遍历 Javascript 数组多个元素的惯用方法是啥?

在不转换为数组的情况下迭代 NodeList 并移动其元素的惯用方法是啥?

在R向量中“向下”复制单元格值的惯用方法[重复]

在 JavaScript 中处理非法参数的惯用方法是啥?

在 Ruby 中更新哈希键的惯用方法是啥?

在 Clojure 的嵌套映射中关联多个键/值的惯用方法是啥?