maplist/3 are higher-order predicates, which allow the definition of a predicate to be lifted about a single element to lists of such elements. These predicates can be defined using
call/3 as building blocks and ship with many Prolog systems.
?- maplist(dif(a), [X,Y,Z]). dif(X, a), dif(Y, a), dif(Z, a).