サイド プロジェクトとして、画像合成用の Clojure DSL ( clisk ) を作成しています。
+Clojure コアの関数に類似した関数がDSLにある場合、関数の命名に対する最善のアプローチについて少し確信が持てません。.
私が見る限り、いくつかのオプションがあります。
+自分の名前空間で同じ名前 ( ) を使用します。DSL コードでは見栄えがしますが、clojure.core バージョンをオーバーライドするため、問題が発生する可能性があります。人々は混乱する可能性があります。- 同じ名前を使用しますが、修飾する必要があります (
my-ns/+)。競合を回避useしますが、利便性のために人々が名前空間を ing できないようにし、見た目が少し醜いです。 - ( ) など、別の短い名前を使用し
v+ます。簡単に実行でき、衝突を避けることができますuseが、名前が少し見苦しく、覚えにくいかもしれません。 - ( ) など、別の長い名前を使用し
vector-addます。冗長ですが説明的で、衝突はありません。 - マルチメソッドを除外
clojure.core/+して再定義します+(georgekが示唆するように)。
サンプル コードは次のようになります。
(show (v+ [0.9 0.6 0.3]
(dot [0.2 0.2 0]
(vgradient (vseamless 1.0 plasma) ))))
最善/最も慣用的なアプローチは何ですか?