The specifics mainly deal with the number blending that is
applied in the Dogelog Player for the JavaScript platform. Whereas
Prolog atoms are simply mapped to JavaScript strings, the map-ping
of Prolog numbers is towards JavaScript Number primitive and
JavaScript BigInt primitive. The range swap allows separating
Prolog floats from Prolog integers.
The following mapping from Prolog to JavaScript is used:
Prolog AtomicThe following JavaScript specific calls are provided:
+--- Prolog Atom
+--- JavaScript string
+--- Prolog Number
+--- Prolog integer
+---- JavaScript number in -94906266..94906266
+---- JavaScript bigint otherwise
+--- Prolog float
+---- JavaScript bigint in -94906266..94906266
+---- JavaScript number otherwise
+--- Prolog 0rInf special
+---- JavaScript Infinity
+--- Prolog -0rInf special
+---- JavaScript -Infinity
+--- Prolog 0rNaN special
+---- JavaScript NaN
+--- Prolog 0rNone Reference
+--- JavaScript null
+--- Prolog 0rFalse Reference
+--- JavaScript false
+--- Prolog 0rTrue Reference
+--- JavaScript true