В стандарте ISO Prolog, я не верю, что вы можете, но SWI-Prolog имеет расширение , которое позволяет это. Если вы определяете предикаты
enc(K, M, Result) :- % whatever
dev(K, C, Result) :- % whatever
, которые возвращают результат в третьем аргументе, вы можете сказать
:- arithmetic_function(enc/2).
:- arithmetic_function(dec/2).
и используйте те с
C is enc(K, M).
и т.д.. Вы не можете сделать это с =
, потому что в Прологе это имеет особое значение: объединение переменной C
с термином (структура данных) enc(K,M)
.