Dire quali dei seguenti ternini sono atomi:
1) cane si inizia con una lettera minuscola
2) Cane no inizia con una lettera maiuscola
3) x25 si inizia con una lettera minuscola
4) 3x2 no inizia con una cifra numerica
5) variabile_x si inizia con una lettera minuscola
6) VariabileZ no inizia con una lettera maiuscola
7) varZ si inizia con una lettera minuscola
8) ===> si composto da caratteri speciali
9) :- si composto da caratteri speciali
10) _aprile no inizia con un sottolineato
11) 'Mario' si racchiuso fra apici
12) 'X' si racchiuso fra apici
Dire quali dei seguenti termini sono variabili:
1) X si inizia conuna lettera maiuscola
2) Cognome si inizia conuna lettera maiuscola
3) X_22 si inizia conuna lettera maiuscola
4) x_22 no inizia conuna lettera minuscola
5) 'ABC' no racchiuso fra apici
6) _3x si inizia con un sottolineato
7) _ si sottolineato - variabile anonima
8) 22 no e' un numero
Siano dati i fatti:
% file: strutture/es1.pl in_prestito(rossi,libro(la_valle_dell_eden,autore(john,steinbeck))). in_prestito(verdi,libro(cime_tempestose,autore(emily,bronte))). in_prestito(verdi,libro(gente_di_dublino,autore(james,joyce))). in_prestito(rossi,libro(ulisse,autore(james,joyce))).
Sfruttando le regole di matching ed il meccanismo di backtracking rispondere alle seguenti domande:
?- in_prestito(X,libro(cime_tempestose,_)).
X = verdi
Yes
?- in_prestito(verdi,libro(Libro,Autore)). Libro = cime_tempestose Autore = autore(emily, bronte) Yes Libro = gente_di_dublino Autore = autore(james, joyce) Yes NoRicordare che per avere tutte le soluzioni bisogna usare l'opzione di "all" di pquery.
?- in_prestito(_,libro(Libro,autore(james,joyce))). Libro = gente_di_dublino Yes Libro = ulisse Yes No