Pages: [1]   Go Down
Print
Author Topic: Esercizio 22 Prolog  (Read 1231 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
alex180788
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 422


« on: 29-11-2014, 12:16:51 »

Vorrei proporre la mia soluzione (testata) e confrontarla con quella proposta sul sito del corso. Soprattutto per vedere se la mia soluzione è corretta o potrebbe fallire in qualche caso particolare: si tratta di implementare il predicato usable per gli Yunz

usable(frunz(N,M,Y1,Y2)):-N=:=276,!;
                                    M=:=276,!;
                                    usable(Y1);
                                    usable(Y2).

mentre quella sul sito è
usable(frunz(N,M,Y1,Y2)) :- !, N is 276;
                            !, M is 276.
                            !, usable(Y1).
                            !, usable(Y2).

nella mia soluzione: il primo cut evita che ci siano due "true" quando sia M sia N sono istanziati a 276, mentre il secondo cut evita che ci siano due "true" quando la query è vera sia a causa di una condizione che si verifica nel corpo della clausola sia a causa di una condizione che si verifica per una delle due query ricorsive. Ho testato con le seguenti query e dovrebbe funzionare:

?- usable(frunz(276,4,yor,yor)).
true.

?- usable(frunz(2,4,yor,yor)).
false.

?- usable(frunz(276,276,yor,yor)).
true.

?- usable(frunz(6,276,yor,yor)).
true.

?- usable(frunz(26,276,yor,frunz(276,276,yor,yor))).
true.

?- usable(frunz(26,276,yor,frunz(276,276,frunz(276,276,yor,yor),yor))).
true.

?- usable(frunz(276,276,yor,frunz(276,276,frunz(276,276,yor,yor),yor))).
true.

?- usable(frunz(26,4,yor,frunz(276,276,yor,yor))).
true.

mi domando quindi, a cosa servono gli altri due cut nella soluzione proposta?
Logged

Codice etico e di pratica professionale dello sviluppo software:
..
..
7. Colleghi. Gli sviluppatori software devono essere leali e di supporto nei confronti dei loro colleghi.
...
Franco Barbanera
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 2.622



WWW
« Reply #1 on: 30-11-2014, 09:22:29 »

Sul sito c'e' scritto che e' una soluzione...mica che sia la migliore....

Inseriro' anche la tua soluzione con i tuo giusti commenti.

FB
Logged
Pages: [1]   Go Up
Print
Jump to: