我遇到了很多情况,如果满足某个条件,则需要"更新"两个(或甚至三个)值的向量,否则单独使用.例:
(let [val1 some-value
val2 some-other-value
[val1, val2] (if something-true
(first-calculation val1 val2 some-other-arg)
[val1, val2])
[val1, val2] (if something-else-true
(second-calculation some-other-arg val1 val2)
[val1, val2])
...etc...)
Run Code Online (Sandbox Code Playgroud)
其中假设第一次计算和第二次计算返回带有可能更新值的向量[val1,val2].
这种代码风格不仅笨重,而且每次都可能由于向量创建和解构而产生一些不必要的开销.
有没有人建议如何使用vanilla Clojure改进此代码,而不创建宏?换句话说,我正在为多个值寻找一种cond->.
clojure ×1