2014-04-22 5 views
0

Question idiote, mais j'essaie de faire fonctionner ce programme Prolog simple. J'ai écrit d'autres petits programmes Prolog sans problème, mais celui-ci me cause des problèmes:Prolog helloWorld ne fonctionne pas

test :- write 'test1234 test1234',nl,halt. 

C'est tout. Le fichier est enregistré sous la forme adventure1.pl. Il est chargé dans SWI-Prolog sur Ubuntu avec l'option de ligne de commande:

prolog -s adventure1.pl 

lorsqu'il est chargé dans l'interpréteur Prolog j'entre les éléments suivants:

start. 

Cependant, Prolog dit undefined procedure: test/0 (DWIM could not correct goal). Quelle est l'erreur ici, est-ce que c'est vraiment simple. Je l'ai écrit parce que j'ai des exemples de programmes qui utilisent un prédecédé nommé start qui affiche du texte, mais je n'arrive même pas à le faire fonctionner.

Répondre

3
write 'test1234 test1234' 

est une erreur de syntaxe, comme SWI-Prolog indique clairement:

ERROR: /tmp/adventure1.pl:2:10: Syntax error: Operator expected 

Il devrait être

write('test1234 test1234') 

(Bien sûr, cela ne résoudra pas le problème de début ne fonctionne pas, car vous avez défini test.)

+0

Aww snap, parenthèses manquantes! Merci, je me sens stupide en ce moment. Ma version du prolog SWI récemment installé à partir du référentiel Ubuntu par défaut n'a pas donné une erreur plus significative comme vous l'avez fait. –

+2

@AndrewS Il y a deux erreurs et vous les avez toutes les deux. Le seul dont parle larsmans est l'erreur de syntaxe que vous n'avez pas vue parce qu'elle a été imprimée au-dessus de la bannière de démarrage parce que vous avez utilisé 'prolog -s adverture1.pl' au lieu de' [adventure1] .' depuis Prolog. L'erreur que vous avez vue est à quoi fait référence lars quand il a dit 'start' ne fonctionnera pas parce que vous avez défini' test'. –

Questions connexes