Prolog/Primi passi: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m Bot: apostrofo dopo l'articolo indeterminativo e modifiche minori
 
Riga 6:
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 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 diverse linee di informazioni seguite da una linea come quella qui sotto:
 
Riga 15:
consult('FILEPATH').
 
e premi '''invio'''. Ancora una volta sii preciso niente maiuscole e ricorda il punto. Sostituisci FILEPATH con il nome e la directory del file. Per esempio se hai collocato il file nella directory C:\My Documents\Prolog\prolog1.pl allora usa
 
consult('c:/my documents/prolog/prolog1.pl').
Riga 74:
 
Osserva il punto '.' dietro ogni linea per mostrare la fine della stessa. Questo è molto importante, se lo dimentichi il tuo interprete non comprenderà il programma.
Dovresti anche essere consapevole che i nomi scelti per i predicati ed i termini non dicono assolutamente nulla all'interprete di Prolog. Devono essere scelti per consentire di comprendere bene il programma, per la [[w:leggibilità|leggibilità]]. Potremmo sostituire facilmente la parola ''umano'' con qualsiasi altra parola e l'interprete non ne vedrebbe la differenza.
 
Se carichiamo il programma sopra illustrato nell'interprete possiamo interrogare il computer. Se digiti:
Riga 142:
?- umano(A), parente(B,A).
</nowiki></pre>
Adesso stiamo chiedendo a prolog se c'è un umano A che ha un parente B. La virgola tra i due predicati equivale a un ''and'', indicando così che entrambi i predicati necessitano di essere veri affinché sia vera la domanda. Prolog troverà un' istanza che renda il primo predicato vero, quindi cercherà di rendere vero il secondo (servendosi dell'istanza del primo). Trovato un modo per rendere la proposizione vera, come nel caso precedente, se premi punto e virgola, Prolog cercherà altre soluzioni provando prima per altre istanze del secondo predicato e poi ripeterà il processo provando per le tutte le rimanenti istanze modificando di volta in volta il primo predicato.
 
Nell'esempio precedente prolog trova umano(david) nel programma ed unifica A con david. Per verificare il secondo predicato, crea una istanza per parente(B, david). Se non trova nulla cerca una nuova istanza per umano(A). Poi tenta A = john. Quindi istanzia parente(B, john). Trova B = david nella linea parente(david, john) e quindi risulta