What is meant by "meta-level" in logic programming?

Most Prolog systems can answer Quizz 1 by using listing/1 . The result is often that rotten™ cryptic variables are replace by even more cryptic variables:

?- listing.
or(A, _) :-
   call(A).
or(_, A) :-
   call(A).

An answer to quizz 2 might also teach a valuable lesson about declarativity and meta programming in Prolog. You might try googling “cut transparency”.

2 Likes