Built-ins and Evaluable Functors (flowlog.c)

This document lists the built-in predicates and arithmetic evaluable functors implemented by Flowlog (flowlog.c).

Notes:

Code references (section markers in flowlog.c):

Built-in predicates (SECTIONS 22/23/24)

Control and meta-call (SECTIONS 22/23/24)

Inference limits (Flowlog extension, SUBSECTION 19.2 and SECTIONS 22/23/24)

Flowlog provides inference limiting as a lightweight way to classify (some) non-terminating computations without hanging the process (used by quad testing) (SUBSECTION 19.2).

Unification, term identity, and ordering (SECTIONS 12/14/15/16)

Term inspection and construction (SECTIONS 12/14/15)

Type tests (SECTIONS 12/14/15)

Arithmetic (SUBSECTION 15.2)

Atoms, characters, and conversion (SECTION 11 and SECTIONS 22/23/24)

Lists and sorting (SECTIONS 11/12/14/15)

Dynamic database (SECTION 13)

Operators and flags (SECTION 10 and SECTION 05.4)

Streams and term I/O (SECTION 08 and SUBSECTION 17.5)

Debugging / inspection helpers (SECTIONS 22/23/24 and SECTION 06)

Parallelism helpers (Flowlog extensions, SECTIONS 21/22/23/24)

Parallelism is configured via Prolog flags (see PARALLELISM.md), but Flowlog also exposes introspection helpers:

Compatibility / stub predicates (SECTION 06 and SECTIONS 22/23/24)

Flowlog keeps a few predicates for compatibility with other builds. In this build they return fixed values:

Internal / reserved predicates (SECTIONS 22/23/24 and SUBSECTION 19.2)

These predicates are not ISO Prolog. They are used internally (tests/benchmarks) and may change:

Evaluable functors (arithmetic expressions, SUBSECTION 15.2)

These functors are accepted by is/2 and numeric comparisons:

Constants (SUBSECTION 15.2)

Unary (SUBSECTION 15.2)

Binary (SUBSECTION 15.2)