Hello world in Prolog

jameshfisher picture jameshfisher · Aug 26, 2010 · Viewed 15.9k times · Source

I'm tearing my hair out trying to find how to just write a Hello World program in Prolog. I just want to create a program that runs like so:

> ./hw
Hello, world!
>

The problem is that every single example I can find works in a REPL, like so:

?- consult(hello_world).
% hello compiled 0.00 sec, 612 bytes

Yes
?- hello_world.
Hello World!

Yes

This is the same even with examples of compiled Prolog: the program still just drops into a REPL. This is obviously not much use for a "general-purpose" language. So, how do I write the traditional Hello World?

Answer

Greg Buchholz picture Greg Buchholz · Sep 1, 2010

Using GNU Prolog:

$ cat hello.pl 
:- initialization(main).
main :- write('Hello World!'), nl, halt.

$ gplc hello.pl $ ./hello
Hello World!