Prolog Language Higher-Order Programming Meta-call


In Prolog, the so-called meta-call is a built-in language feature. All Prolog code is represented by Prolog terms, allowing goals to be constructed dynamically and be used like other goals without additional predicates:

?- Goal = dif(X, Y), Goal.
dif(X, Y).

Using this mechanism, other higher-order predicates can be defined in Prolog itself.