2017-10-15 10 views
1

Actuellement, essayer de créer un système de recommandation de bibliothèque en prologue pour une tâche de collège et d'être tout à fait nouveau à prolog je suis tout à fait perdu et je me demandais si cela pouvait m'être expliqué dans les moindres détails. Voici mes faits et règles actuellement:Problème d'exécution de la requête dans le prologue avec liste et prédicat

book(after_dark, haruki_murakami,fiction,182). 
book(python, charlie, revision, 560). 
book(nt_bible, sams, reference, 480). 
book(monty_python, cleese, comedy, 300). 

buildLibrary(Lib) :- findall(book(Title, Author, Genre, Size), book(Title, Author, 
Genre, Size), Lib). 

holiday(B,L) :- //this should take the list formed in buildLibrary along with a variable that represents a book 
       //and is true if and only if its genre is comedy or fiction and less than 400 pages 

entrée prévue: buildLibrary(L) holidays(book(after_dark,haruki_murakami,fiction,182),L)

Idéalement, cela devrait revenir vrai qu'elle répond aux exigences énoncées

Comment puis-je sur la définition de la règle pour les vacances ? Une fois que je sais comment faire cela, je me sens comme je peux le faire fonctionner, j'ai essayé plusieurs choses et ils ont tous retourné des erreurs dans le prolog SWL, encore une fois merci pour toute aide!

Répondre

2

Si je comprends bien votre implémentation, vous pouvez faire quelque chose comme:

holiday(B,L) :- buildLibrary(Lib), check(L,B). 


check(book(X, Y, Genre, Size),[book(X, Y, Genre, Size)|_]):- 
        (Genre = comedy ;Genre = fiction), Size < 400. 
check(B,[book(_, _, Genre, Size)|T]):- 
        dif(Genre,comedy),dif(Genre,fiction), check(B,T). 
+0

Eh bien dans la mission de mes états de conférencier: « Vos vacances, révision, prédicats littéraires et de loisirs devraient prendre 2 paramètres, un Livre de "requête" (avec le titre et l'auteur encore inconnu (variable) et une bibliothèque (une liste de livres.) Il passera par la liste et évalue à vrai si le livre en tête de la liste est approprié type de livre (dans ce cas, il correspondra au titre et l'auteur de le livre de la bibliothèque avec le livre "requête") " Cependant, je ne sais pas comment représenter la "requête" en règle générale. –

+0

Pouvez-vous poster un exemple d'entrée-sortie attendue sur le prédicat de vacances ?? – coder

+0

Mis à jour ma question, j'espère que cela le rend plus clair –