Pregunta

Quiero cargar este sencillo algo en mi Editor:

Write:-repeat,write("hi"),nl,fail.

Así que imprime "Hola".

¿Qué debo hacer?

Actualmente estoy tratando de hacer File->New

y almacenamiento de un archivo llamado Escribir en E:\Program Files\pl\xpce\prolog\lib

Cuando se realiza la consulta:

-?. Comentario

Se impresión:

1 ?- Write.
% ... 1,000,000 ............ 10,000,000 years later
% 
%       >> 42 << (last release gives the question)

¿Por qué?

¿Fue útil?

Solución

Editar

He hecho un poco más investigación. Al parecer, esto es lo que hace SWI-Prolog cuando se pregunta acerca de que una variable instanciado.

$ prolog
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.6.64)
Copyright (c) 1990-2008 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).

?- X.
% ... 1,000,000 ............ 10,000,000 years later
% 
%       >> 42 << (last release gives the question)
?- 

Actualizar

Cambiar el nombre a minúsculas obras. Mayúscula es para las variables:

helloworld.prolog:

helloworld:-write('Hello World!'),nl,fail.

A continuación:

$ prolog
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.6.64)
Copyright (c) 1990-2008 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).

?- ['helloworld.prolog'].
% helloworld.prolog compiled 0.00 sec, 1,376 bytes
true.

?- helloworld.
Hello World!
false.

?- 

Tenga en cuenta que usted tiene que consultar el archivo en primer lugar. Probé esto y funciona con seguridad.

Otros consejos

Se necesita un nombre a la write procedimiento, no Write. letras iniciales mayúsculas son para las variables. (Puede ser que sea menos confuso si llamarlo de otra manera como writeHi o algo así, por lo que no tiene el mismo nombre que incorpora un procedimiento, pero seguirá siendo el trabajo cuando se llamaría write debido a que su escritura tiene una aridad diferente que la construyeron en uno).

También es posible que desee reemplazar "hi" con 'hi', a pesar de que va a trabajar de cualquier manera (pero sólo la segunda versión realmente imprimir la palabra hola a la pantalla - la versión imprimirá como una lista de números enteros).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top