Das ist die wörtliche Form BigInt
ist:
user=> (type 1N)
clojure.lang.BigInt
gegenüber, zum Beispiel:
user=> (type 1)
java.lang.Long
oder
user=> (type 1.0)
java.lang.Double
Es gibt auch die M
Suffix für BigDecimal
.
user=> (type 1M)
java.math.BigDecimal
Ich bin nicht sicher, ob alle Regeln für eine Beförderung in beliebiger Genauigkeit (BigInt, BigDecimal). Ich denke, die meisten „normalen“ mathematischen Funktionen werden nicht an beliebiger Genauigkeit zu fördern, aber es gibt ein paar, die tun (zum Beispiel +'
, -'
, *'
, inc'
, dec'
).
z.B. Regelmäßige +
überläuft:
user=> (+ Long/MAX_VALUE 1)
ArithmeticException integer overflow clojure.lang.Numbers.throwIntOverflow (Numbers.java:1388)
aber +'
fördert:
user=> (+' Long/MAX_VALUE 1)
9223372036854775808N