我試圖使用協議來創建一個工程編號類型(「knumber」),所以我可以說(+ "1k" "2Meg")
並得到類似"2.001Meg"
的東西。我應該能夠從knumber中獲得浮點值,就像(:val my-knumber)
一樣,但通常情況下,打印機應該顯示字符串,這也可以像(:string my-knumber)
那樣訪問。這個數字將支持所有通常的p,n,u,m,k,Meg,G後綴,並根據需要進行轉換,如(/ "1Meg" "1G") -> "1m")
。我希望能夠將此傳遞給任何需要數字的函數。如何在Clojure中擴展數字協議
無論如何,有人可以提出一個這樣的策略?我想我需要使用協議。我目前有一個(defrecord knumber [val string])
,但我不確定接下來會發生什麼。
什麼協議clojure數字satsify?我想我需要爲此擴展一些現有的協議/接口。
感謝
我知道這不是一回事,但你可以使用科學記數法:(/ 1e6 1e9) – DaoWen 2012-08-06 08:07:06