Prolog/Primi passi: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
BimBot (discussione | contributi)
m Robot: Automated text replacement (-([^'])i'([^']) +\1ì\2)
BimBot (discussione | contributi)
m Robot: Automated text replacement (-([^'p])o'([^']) +\1ò\2)
Riga 5:
Umano(john).
 
Sii preciso, la maiuscola è importante in prolog, come il punto. Questo sarà il tuo programma (noto come '''database''' o '''conoscenza di base'''). Salvalo come prolog1.pl. ''Nota: L'estensione .pl non è ufficialmente associata con prolog e questo puo'può causare conflitti se programmi in Perl, che usa ugualmente .pl. Se questo costituisce un problema puoi usare .pro o .pr o una a tuo piacere.''
Adesso avvia l'interprete di prolog. Molti interpreti di prolog mostrano una finestra con un sacco di informazioni seguite da una linea come quella qui sotto:
 
Riga 91:
No.
 
Questo sembrerà noiosamente ovvio, ma è importante vederlo nel modo giusto. Se chiedi a prolog '''umano(john).''', significa che stai chiedendo a prolog se quest'affermazione è vera. Chiaramente il prolog non puo'può valutare se l'affermazione è vera, semplicemente sta consultando il suo file.Semplicemente controlla che qualcuna della affermazioni contenuta nella knowledgebase sia vera ed in tal caso risponde '''yes'''; '''no''' nel caso contrario.
Nota: se chiedi a prolog
 
Riga 135:
</nowiki></pre>
 
Quando prolog riceve una domanda con una variabile controlla tutte le linee del programma, e cerca di ''unificare'' ogni predicato con la domanda. Questo signifixa che controllerà se la domanda coincide con il predicato quando le variabili vengono istanziate in un certo modo. Prolog puo'può unificare '''umano(A)''' con '''umano(john)''' mettendo insieme A e john, ma non puo'può mettere insieme '''uomo(A)''' con '''umano(john)''', perchè i predicati sono diversi.
 
Per rendere le cose un po' difficili a prolog possiamo usare due predicati nella stessa domanda, per esempio: