No. Но есть декларация режима в Mercury. Меркурий - это больше, чем Пролог; это язык functional-logic. У Mercury по-прежнему много синтаксиса Prolog.
SWI-Prolog - это стандартный пролог. Он использует только объявления режима в документации 1 как информацию для пользователей. Такие объявления могут быть размещены в комментариях модулей для программ обработки документации для компиляции.
В стандартных прологах, за пределами комментариев, такие объявления разрешены (и требуются) только в особых ситуациях. Например, предикат Sicstus Prolog, например, block/1 требует их.
Блок/1 используется для совместной маршрутизации (ленивая оценка, задержка и т. Д.). Я видел только block
, используемый в одной программе в моей жизни, PAKCS 2, переводчик для другого функционально-логического языка. Когда переводчик был перенесен в SWI, block/1
не использовался.
1Тип и режим деклараций в SWI Источник документации
2 PAKCS, программа, используя block/1
предикат (PAKCS является реализация Карри языка.)