Disons que j'ai un fichier main.pl
avec le contenu suivantswi-prolog ne peut pas inclure de fichier externe?
/* I tried these one at a time, not all at once... */
[externalFile].
['externalFile'].
['externalFile.pl'].
['./externalFile.pl']./*this was an answer to a similar SO question*/
consult(externalFile).
/*... etc ...*/
permet maintenant l'utiliser ...
$ swipl -l externalFile.pl
/* 12 second loading delay */
/* everything works perfect! */
$ swipl -l main.pl
/* 0 second loading delay */
/* let's try anything from externalFile... */
ERROR: toplevel: Undefined procedure: [...]
/* main.pl might as well be empty */
?- consult(externalFile).
/* 0 second loading delay */
true.
/* true? oh my bad! Lets try again... */
ERROR: toplevel: Undefined procedure: [...]
?- [externalFile].
/* 12 second loading delay... seems better... */
true.
/* been lied to before... */
/* and yet every thing works perfect now! */
Note: consult(externalFile).
n'a qu'à aucun effet lorsque consult(externalFile).
est en main.pl
. Sinon, consult(externalFile).
parvient à importer le fichier dans une session de terminal. Comment puis-je écrire du code source sans avoir à copier et coller tout mon programme dans le terminal (ou juste avoir tout mon code source de programme a une taille de fichier de 15+ MEGA octets d'inclusions manuelles!) Si le terminal est le seul endroit où les commandes d'importation fonctionneront?
Note: J'ai également vérifié le codage de ligne de séparation (DOS vs Windows) (ce qui était la réponse à une autre question)
Note: clauses indépendantes définies directement dans main.pl fonctionner correctement
Voir: http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse52 –
Vous devriez consulter la documentation de Prolog. '[]' dans ce contexte est identique à 'consulter()'. Ce sont des directives. Les directives exigent ': -'. Ainsi, par exemple, ': - [externalFile] .' ou': - consult (externalFile) .'. – lurker
@lurker pourquoi ne pas écrire comme une réponse, semble assez complète et très utile :)? – coder