The specifics mainly deal with a number blending problem on the Python platform. It turns out that unlike JavaScript, which has a type sensitive equality (===)/2, we didn’t find such a thing in Python. Therefore, we need to be careful in syntactic comparison where the ISO core standard requires that the float number 1.0 is different from the integer number 1.
The following mapping from Prolog to Python is used:
Prolog Atomic
+--- Prolog Atom
+--- Python string
+--- Prolog Number
+--- Prolog integer
+---- Python int
+--- Prolog float
+---- Python float
+--- Prolog 0rInf Special
+---- Python math.inf
+--- Prolog -0rInf Special
+---- Python -math.inf
+--- Prolog 0rNaN Special
+---- Python math.nan
+--- Prolog 0rNone Reference
+--- Python None
+--- Prolog 0rFalse Reference
+--- Python False
+--- Prolog 0rTrue Reference
+--- Python True
The following Python specific calls are provided: