call/n
a apply/2
. Proto jsem implementoval vlastní predikát
:-@/1
, který je dokáže nahradit a využívá výhradně standardních
prostředků jazyka Prolog:
?- :-@ [mod(23), 7, X]. X = 2 Yes
:-@/1
. Výhodou tohoto řešení je, že
knihovnu je možné použít kdekoli a navíc, pokud obsahuje daný interpret
jazyka Prolog podporu pro programování vyššího řádu, například ve
formě výše zmíněných primitiv call/n
či apply/2
,
si lze z nich vybrat to, které je zde efektivnější a implementovat
pomocí něj :-@/1
. Tak je možné původně obecnou knihovnu snadno
ušít na míru danému interpretu. Takové optimalizované verze jsou
připraveny pro implementace BinProlog a SWI Prolog.
Predikát :-@/1
je definován také jako prefixní operátor, což
zjednodušuje jeho používání.