No. Ma v'è dichiarazione modalità in Mercury. Mercurio è più di Prolog; è una lingua functional-logic. Mercury ha ancora molta sintassi Prolog.
SWI-Prolog è un Prolog standard. Utilizza solo le dichiarazioni di modalità nella documentazione 1 come informazioni per gli utenti. Tali dichiarazioni possono essere inserite nei commenti dei moduli per la compilazione di programmi di analisi della documentazione.
In Prologs standard, al di fuori dei commenti, tali dichiarazioni sono consentite (e richieste) solo in situazioni molto speciali. Il predicato block/1 di Sicstus Prolog, ad esempio, li richiede.
Blocco/1 viene utilizzato per il co-routing (valutazione lazy, ritardo ecc.). Ho visto solo block
utilizzato in un programma della mia vita, PAKCS 2, un interprete per un altro linguaggio di logica funzionale. Quando l'interprete è stato portato su SWI, non è stato utilizzato block/1
.
1tipo e la modalità dichiarazioni in SWI Documentazione Fonte
2 PAKCS, un programma utilizzando il block/1
predicato (PAKCS è un'implementazione del curry lingua.)