Did you know ... Search Documentation:
prolog_evaluable.pl -- Inspect properties of evaluable functions
PublicShow source
Source evaluable_property(?Function, ?Property) is nondet
True when Property is a property of the evaluable function Function. Evaluable functions are expressions processed by the arithmetic predicates is/2, </2, =</2, =:=/2, >/2 and >=/2. Defined properties are:
Function is built-in. The proposal defines additional properties for systems that allow defining new functions at runtime. SWI-Prolog provides library(arithmetic) for this, which rewrites the source as interleaved predicate calls and built-in function evaluation.
Function is part of the ISO standard. This does, for SWI-Prolog, not imply that the implementation satisfies the ISO standard. It implies that it implements the same mathematical operation as specified by the standard. The returned type may be more precise and may, depending on Prolog flags, return non-normal floats where the ISO standard demands an exception.
template(Function, Return)
Type support. Types used are integer, rational and float. Functions that copy the type to the output use a variable to indicate this, e.g., template(-Type, Type). A function may have multiple type templates.

Future versions may provide this predicate as a built-in.

Function- is a variable or callable term. If it is a callable term, only the name and arity are considered to denote the evaluable.
- discussed by several implementors, initiated by Paulo Moura.