Ricerca…


Predicati con effetti collaterali

I predicati che producono effetti collaterali lasciano il regno della pura logica. Questi sono ad esempio:

  • writeq/1
  • read/1
  • format/2

Gli effetti collaterali sono fenomeni che non possono essere ragionati all'interno del programma. Ad esempio, eliminazione di un file o output sul terminale di sistema.

Predicati meta-logici

Predice che la ragione delle istanziazioni è chiamata meta-logica . Gli esempi sono:

  • var/1
  • ground/1
  • integer/1

Questi predicati sono al di fuori del regno dei programmi di logica monotona pura, perché rompono proprietà come la commutatività della congiunzione.

Altri predicati che sono meta-logici includono:

  • arg/3
  • functor/3
  • (=..)/2

Questi predicati potrebbero in linea di principio essere modellati nella logica del primo ordine, ma richiedono un numero infinito di clausole.

Prassi di tutte le soluzioni

Predice che la ragione di tutte le soluzioni sia extra-logica. Questi sono ad esempio:

  • setof/3
  • findall/3
  • bagof/3

! / 0 e predicati correlati

I predicati che impediscono o proibiscono una lettura dichiarativa dei programmi Prolog sono extra-logici. Esempi di tali predicati sono:

  • !/0
  • (->)/2 e se-allora-else
  • (\+)/1

Questi predicati possono essere compresi solo proceduralmente, tenendo conto del reale flusso di controllo dell'interprete, e come tali sono al di là del regno della pura logica.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow