プロトコルを使用してエンジニアリング番号タイプ(「knumber」)を作成しようとしているので、の(+ "1k" "2Meg")
ようなものを取得できます"2.001Meg"
。このようにknumberから浮動小数点値を取得できるはずですが(:val my-knumber)
、通常、プリンターは文字列を表示する必要があります。これもこのようにアクセスできます(:string my-knumber)
。この番号は、通常のすべてのp、n、u、m、k、Meg、Gサフィックスをサポートし、必要に応じて、などのそれらの間で変換し(/ "1Meg" "1G") -> "1m")
ます。これを、数値を期待するすべての関数に渡せるようにしたいと思います。
とにかく、誰かがこれのための戦略を提案できますか?プロトコルを使う必要があると思います。私は現在持っていますが、(defrecord knumber [val string])
次に何が起こるかわかりません。
clojure番号はどのプロトコルを満足させますか?このために、いくつかの既存のプロトコル/インターフェースを拡張する必要があると思います。
ありがとう