Prolog Language Extra-logical Predicates !/0 and related predicates


Predicates that impede or prohibit a declarative reading of Prolog programs are extra-logical. Examples of such predicates are:

  • !/0
  • (->)/2 and if-then-else
  • (\+)/1

These predicates can only be understood procedurally, by taking into account the actual control flow of the interpreter, and as such are beyond the realm of pure logic.