3
特定の条件が満たされている場合は、2つ(または3つ)の値のベクトルを「更新」する必要があります。例:おそらく更新された値とcond->複数の値を持つ
(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...)
仮定が第一の計算と第2の演算は、ベクトルを返すことである[VAL1、VAL2]。
このコードスタイルは厄介なだけでなく、たびたびベクトルの作成と破棄のために不必要なオーバーヘッドがあります。
マクロを作成せずに誰かがこのコードを改善する方法について提案していますか?言い換えれば、私は多種の価値観のためにcond->を探しています。
質問を書くとき、私はいくつかの超巧妙なトリックが存在することを望んでいましたが、より単純なソリューションは通常よりエレガントです。マップを使用するあなたのアイデアはClojure-esqueになります。ありがとう! –