Prolog/Primi passi: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
BimBot (discussione | contributi)
m Robot: Automated text replacement (- , +,)
Nikbot (discussione | contributi)
m Robot: Automated text replacement (-perchè +perché)
Riga 96:
?- umano(david).
 
Prolog risponderà No perchèperché non trova niente nel database.
 
== Variabili ==
Riga 112:
A = john
 
Verà perchèperché il database contiene la linea '''umano(john)'''. Se premi invio, prolog risponderà Yes e rimanderà il cursore. Se premi il punto e virgola (';') prolog mostrerà il resto delle possibilità:
 
A = suzie ;
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 può unificare '''umano(A)''' con '''umano(john)''' mettendo insieme A e john, ma non può mettere insieme '''uomo(A)''' con '''umano(john)''', perchèperché i predicati sono diversi.
 
Per rendere le cose un po' difficili a prolog possiamo usare due predicati nella stessa domanda, per esempio: