我正在寻找有关何时在 Clojure 中使用 Clojure BigInt 与 Java BigInteger 的指导。两者都工作得很好,我假设使用 BigInt 的主要原因是利用诸如+
and之类的运算符=
,例如必须通过 Java 实例方法.add
and来访问它们.equals
。但是很少有运算符,例如isProbablePrime
,我只能从 BigInteger 访问。
从 BigInt 转换到 BigInteger 似乎很容易,反之亦然,但是两者的存在使我不清楚用例。我的下意识反应就是在没有明确标准的情况下坚持使用 BigInteger,因为一些建议的用法似乎不起作用。从这里的clojuredocs:
user=> (def x (bigint 97))
user=> (.isProbablePrime x 1)
IllegalArgumentException No matching method found: isProbablePrime for class
clojure.lang.BigInt clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:53)