2010-10-05 11 views
0

J'essaie d'apprendre les bases de Prolog pour une classe. Je suis confronté au problème apparemment simple de ne pas pouvoir stocker une liste dans une règle et de l'extraire pour l'utiliser dans d'autres clauses. Par exemple:Comment stocker et accéder à une liste dans une variable dans Prolog?

% These are the contents of the pl file I want to consult 

% Numbers I want to process 
inputList([3,2,1,0]). 

% Prints out the contents of a list 
printList([First | Tail]) :- 
    write(First),nl, 
    printList(Tail). 

Ce que je veux faire est d'appeler les éléments suivants dans Prolog:

?- inputList(X). 
?- printList(X). 

L'objectif est d'éviter d'entrer en permanence de longues listes dans l'interpréteur Prolog et au lieu de les stocker dans le .pl fichier. Cependant, en entrant les commandes ci-dessus, la liste n'est pas correctement vérifiée par rapport à la clause donnée. Comment cela peut-il être accompli, de préférence en utilisant la structure ci-dessus pour stocker une liste {listContents ([a, b, c, d]).}?

Répondre

0

Je pense que vous devez modifier votre appel en Prolog à

?- inputList(X), printList(X). 
Questions connexes