スキームでは、次のことができます。
#;> (numerator 1/3)
1
#;> (denominator 1/3)
3
Clojure では、次のようなことができます。
user=> (numerator 1/3)
1
user=> (denominator 1/3)
3
しかし、Scheme では次のことができます。
#;> (numerator 0.3)
3.0
Clojureでは不可能です:
user=> (numerator 0.3)
ClassCastException java.lang.Double cannot be cast to clojure.lang.Ratio clojure.core/numerator (core.clj:3306)
Double (または実際には任意の種類の数値) を clojure.lang.Ratio に変換するにはどうすればよいですか?
スキームにはinexact->exact
、Clojure の「double to ratio」のようなものもありますが、それに似たものは見つかりません。