casos de uso para BigInt versus BigInteger no Clojure
Estou procurando orientação sobre quando usar o Clojure BigInt versus o Java BigInteger no Clojure. Ambos funcionam muito bem, e eu estou supondo que a principal razão para usar BigInt é tirar proveito de operadores como+
e=
, que devem ser acessados através dos métodos da instância Java.add
e.equals
, por exemplo. Mas há poucos operadores, comoisProbablePrime
, que só posso acessar do BigInteger.
Parece muito fácil mudar de BigInt para BigInteger ou vice-versa, mas a presença de ambos faz com que os casos de uso não sejam claros para mim. Minha reação instintiva é apenas ficar com BigInteger na ausência de critérios claros, já que alguns dos usos sugeridos parecem não funcionar. Declojuredocs aqui:
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)