2010-12-21 20 views
16

Estoy siguiendo un tutorial de Prolog. Me está diciendo que puedo cargar otros archivos de prólogo escribiendo:.Cargando archivos en Prolog

[filename]. 

pero cada vez que intento esto estoy recibiendo

ERROR: load_files/2: Arguments are not sufficiently instantiated. 

el archivo está en el mismo directorio que el que estoy trabajando en el

Aquí está una copia de toda la consulta y error:

12 ?- [KB5]. 

ERROR: load_files/2: Arguments are not sufficiently instantiated 

¿Qué estoy haciendo mal?

Respuesta

22
$ cat junk.pl 
test(ok). 

$ prolog 
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.8.0) 
Copyright (c) 1990-2009 University of Amsterdam. 
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, 
and you are welcome to redistribute it under certain conditions. 
Please visit http://www.swi-prolog.org for details. 

For help, use ?- help(Topic). or ?- apropos(Word). 

?- [junk]. 
% junk compiled 0.00 sec, 24 bytes 
true. 

Parece funcionar bien para mí. Por supuesto que estoy usando un átomo para mi nombre de archivo, no una variable. (KB5 es un nombre de variable, no un átomo). Primero pruebe ['KB5'] y vea si eso ayuda. Luego intente [kb5] y vea si eso ayuda. Finalmente, pruebe con un ejemplo mínimo absoluto como el que proporcioné y vea si puede cargar de esa manera.


Editado para añadir:

$ cp junk.pl JUNK.pl 
$ prolog 
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.8.0) 
Copyright (c) 1990-2009 University of Amsterdam. 
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, 
and you are welcome to redistribute it under certain conditions. 
Please visit http://www.swi-prolog.org for details. 

For help, use ?- help(Topic). or ?- apropos(Word). 

?- [JUNK]. 
ERROR: load_files/2: Arguments are not sufficiently instantiated 
?- ['JUNK']. 
% JUNK compiled 0.00 sec, 1,656 bytes 
true. 

Parece que el problema átomo de hecho. Use ['KB5'] y su error probablemente desaparecerá.

8

Aunque el otro método proporcionado funciona. Aquí hay una alternativa:

?- consult('C:/User/Folder/myRules.pl'). 

¡Eso debería hacer el truco!

0

No dije qué plataforma está utilizando. Me estoy ejecutando en Raspberry Pi y los archivos prolog cargan bien si se colocan en el directorio Pi. No pude hacer que se carguen en el directorio Pi/Documents. Así que experimenté y creé una carpeta "prólogo" en el directorio Pi y coloqué mi archivo load.pl allí y ahora consulté trabajos.

consult(prolog/load).