サイド プロジェクトとして、画像合成用の 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) ))))
最善/最も慣用的なアプローチは何ですか?