本文介绍了交换向量中两个元素的惯用方法是什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Is there a better or more concise way to do the following?

(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))))

推荐答案

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

I can't think of a particularly elegant solution, either. Here's how I'd write it though:

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

这篇关于交换向量中两个元素的惯用方法是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-22 20:17