Broader Arithmetic


Recently we have further extended the (^)/2 operator not only to apply to an integer basis but also to a decimal basis which will give a decimal result. A float basis is automatically promoted to a decimal.

Jekejeke Prolog defines some evaluable functions with a broader scope. In particular the arithmetic functions (mod)/2 and (rem)/2 are not only defined for integers, but also on floats. Nowadays this is in already found in many programming languages. For example Java has extended the mod operator % towards floats.

Integration / Elimination
The enhancement of evaluable functions in that previously exceptional values are now defined is allowed by ISO (5.5.10). Only in the strict conforming mode (by the note referring to 5.1e) we would run into problems and would need to remove the additional functionality. We could stash the functionality to new evaluable functions (fmod)/2 and (frem)/2.

Failed Test Cases

Corr.2, XLOG 3
Corr.2, XLOG 4:
ISO 9.1.7, ISO 35

Related Findings