(unchecked-dec x)
Returns a number one less than x, a long. Note - uses a primitive operator subject to overflow.
user=> (unchecked-dec 4)
3
user=> (unchecked-dec Integer/MIN_VALUE)
2147483647
;; Illustrates the difference between (dec), (dec') and (unchecked-dec)
;; The "N" suffix denotes a BigInt instance
;; https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/BigInt.java
Long/MIN_VALUE
;;=> -9223372036854775808
(dec Long/MIN_VALUE)
;;=> ArithmeticException integer overflow clojure.lang.Numbers.throwIntOverflow (Numbers.java:1501)
(dec' Long/MIN_VALUE)
;;=> -9223372036854775809N
;; Notice how the resulting number becomes POSITIVE:
(unchecked-dec Long/MIN_VALUE)
;;=> 9223372036854775807