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