Clojure - Calculate with big numbers
I want to calculate !1000 in clojure, how can I do this without getting a integer-overflow exception? My factorial code is right now: (reduce * (range 1 1001)) . You could use the *' operator which supports arbitrary precision by automatically promoting the result to BigInt in case it would overflow: (reduce *' (range 1 1001)) Put N at the end of the number which makes it a bigint, (reduce * (range 1N 1001N)) Coerce the parameters to clojure.lang.BigInt (reduce * (range (bigint 1) (bigint 1001))) I.e. if you are working with an third-party library that doesn't use *' (defn factorial' [n]