Я ищу руководство по использованию Clojure BigInt и Java BigInteger в Clojure. Я считаю, что основной причиной использования BigInt является использование таких операторов, как +
и =
, которые должны быть доступны через методы экземпляра Java .add
и .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)