przypadki użycia dla BigInt kontra BigInteger w Clojure
Szukam wskazówek, kiedy używać Clojure BigInt kontra Java BigInteger w Clojure. Oba działają dobrze i zakładam, że głównym powodem używania BigInt jest wykorzystanie operatorów takich jak+
i=
, do których należy uzyskać dostęp za pomocą metod instancji Java.add
i.equals
, na przykład. Ale jest niewielu operatorów, takich jakisProbablePrime
, że mogę uzyskać dostęp tylko z BigInteger.
Przejście z BigInt na BigInteger lub odwrotnie wydaje się dość łatwe, ale obecność obu sprawia, że przypadki użycia są dla mnie niejasne. Moją odruchową reakcją jest po prostu trzymanie się BigIntegera przy braku jasnych kryteriów, ponieważ niektóre z sugerowanych zastosowań wydają się nie działać. Zclojuredocs tutaj:
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)