Predikát :-@

Aby knihovna kombinátorů byla přenositelná, rozhodl jsem se vyvarovat se používání nestandardních predikátů call/napply/2. Proto jsem implementoval vlastní predikát :-@/1, který je dokáže nahradit a využívá výhradně standardních prostředků jazyka Prolog: V knihovně kombinátorů je používán pro programování vyššího řádu výhradně zavedený predikát :-@/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í.



dvorka 2013-12-31