在Clojure中,如何将long int转换为rational?

Igo*_*bin 1 rational-number clojure

如何在Clojure中将long int转换为Rational?

这不起作用:

user> (class (/ 5 1))
java.long.Long
Run Code Online (Sandbox Code Playgroud)

Thu*_*ail 5

您不需要将long 显式转换为理性.

Clojure将转换

  • 理性(clojure.lang.Ratio)成为long(java.lang.Long)的时候可以:当分母是或者可以成为1;
  • 多头或其他整数到一个理性它的时候必须:当一个部门不能被解析为的分母1.

从而

(type (/ 4 2)) ; java.lang.Long

(type (/ 4 3)) ; clojure.lang.Ratio