Пролог позволяет объединять составные термины с переменными:
token(1,2,3).
token(4,5,6).
token_term(Term, X, Y, Z) :- Term=token(X, Y, Z).
? token_term(Term, 1,2,3).
T = token(1, 2, 3).
Как мы можем сделать более общую версию для любого имени функтора:
? term(Term, token, 1,2,3).
T = token(1, 2, 3).
Кажется следующее не допускается синтаксис:
term(Term, F, X, Y, Z) :- Term=F(X, Y, Z).