2011-03-07 4 views
11

Je suis tout nouveau à Prolog. J'essaie simplement d'obtenir une sortie de Prolog sur Windows Vista.Première utilisation de SWI-Prolog

J'ai téléchargé et installé Prolog 5.1; J'ai choisi l'extension de fichier .pro lors de l'installation (ne pas confondre avec les fichiers Perl). J'ai créé un fichier appelé test.pro. Dans ce fichier, je mis les éléments suivants:

inside(tom). 
?-inside(tom). 

Je double cliqué sur le fichier et une interface de ligne de commande sauté vers le haut. Sur cette interface (après un tas d'information sur la version générique Prolog/copyright) est la seule sortie:

1 ?- 

OK, pour commencer, je ne m'y attendais pas à demander une question; Je m'attendais à répondre une question (quelque chose le long de la ligne de «oui»).

Quoi qu'il en soit, j'ai essayé de répondre à la question qui suit: «intérieur (tom) »

Dans la ligne de commande je réinsérée, de sorte que la ligne entière ressemble à:

1 ?- inside(tom). 
Je

pressé Entrez et a obtenu un message d'erreur:

ERROR: toplevel: Undefined procedure: inside/1 (DWIM could not correct goal) 

Répondre

6

Vous devez compiler ce premier (également appelé « consulter » en Prolog). Si je connaissais la version de prolog que vous avez, je pourrais trouver l'entrée exacte de cette commande (Ctrl-L peut fonctionner). En passant, bienvenue dans le merveilleux monde du prologue - j'adore ça :) Dès que vous avez franchi cet obstacle, ça devient beaucoup mieux. :)

+0

Je devine que c'est SWI-Prolog (vous pourriez être surpris de voir combien différents «prologs» existent). Dans ce cas, "Consulter ..." est dans le menu principal du fichier - il vous invite à charger un fichier, il suffit donc de recharger ce fichier et vous devriez tous les avoir définis. Vous devez, en effet, lui demander une requête avant de faire quoi que ce soit - c'est ainsi que fonctionne tout programme prologue. –

+0

Oui, SWI-Prolog. J'ai trouvé cela et je pense avoir compilé le fichier.Au début, lorsque j'ai choisi l'option 'consulter' dans le menu Fichier, je n'ai pas vu mon fichier nommé test.pro. J'ai dû choisir d'afficher "Tous les fichiers" (c'est wierd, peut-être que prolog ne reconnaît pas les fichiers .pro) pour que le fichier devienne apparent; Je l'ai choisi et il semblait aller de l'avant. J'ai reçu le message: "dir .../test.pro compilé 0,00 sec, 1,696 octets", mais je n'ai pas vu de fichier compilé dans le même répertoire et suis actuellement en train de chercher dans la nouvelle structure de répertoire installée avec le Prolog installation. –

+0

J'ai réinstallé SWI-Prolog, mais j'ai laissé l'extension par défaut à .pl. Cela semblait être le problème ... en plus de compiler via le menu 'fichier/consulter' comme vous l'avez suggéré. Merci de votre aide. –

19

Prolog ne répond pas aux questions si vous ne l'avez pas dit faits. (Sauf pour certains faits intégrés tels que member(1, [1,2,3]).)

Vous pouvez dire ce qui est à l'intérieur par (commentaire suivre un %):

1 ?- [user].       % get facts and rules from user input 
|: inside(mary).      % Mary and John are explicitly inside 
|: inside(john). 
|: inside(X) :- location(X, house). % rule: anyone in the house is inside 
|: inside(X) :- location(X, office). % (variables start with a capital letter) 
|: 
|: location(tom, house). 
|: location(bernard, house). 
|: location(anne, office). 
|:         % type Ctrl+D 
% user://1 compiled 0.00 sec, 1,220 bytes 
true. 

2 ?- inside(tom).      % Prolog deduces that Tom is inside 
true . 

Si vous voulez apprendre Prolog, Learn Prolog Now est un bon , tutoriel gratuit.

+1

Merci beaucoup. J'aime le tutoriel aussi. –

0

Rapide et sale. Ce qui manquait était de "compiler" le fichier, connu sous le nom de consultation et la syntaxe est la suivante, tous les caractères de la ligne sont pertinents.

? - [nom de fichier].

alors vous pouvez poser des questions et faire d'autres choses avec ce que la base de données. (Le code source en Prolog)

http://www.swi-prolog.org/pldoc/man?section=quickstart

Questions connexes