Hello world в прологе

я рву волосы, пытаясь найти, как просто написать программу Hello World в Prolog. Я просто хочу создать программу, которая работает так:

> ./hw
Hello, world!
>

проблема в том, что каждый пример, который я могу найти, работает в REPL, например:

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

Yes
?- hello_world.
Hello World!

Yes

это то же самое даже с примерами скомпилированного пролога: программа все еще просто падает в REPL. Очевидно, что это не очень полезно для языка "общего назначения". Итак, как мне написать традиционное Hello Мир?

4 ответов


используя GNU Prolog:

$ gplc hello.pl $ ./Здравствуйте!
Привет, мир!


вы можете написать исходный файл как для запуска интерпретатора пролога, так и для выхода из него, когда ваш код будет выполнен. Вот пример использования SWI-Prolog:

#!/usr/bin/swipl -q -t hello_world -f

hello_world :- write('Hello World'), nl, 
               halt.

предполагая, что вы поместите это в файл с именем "hw" и установите исполняемое разрешение, вы можете назвать его так, как хотите:

$ ./hw
Hello World
$

Prolog на самом деле не общего назначения язык. Мы используем его для разработки систем искусственного интеллекта в университете.

вам нужно будет определить факт, который отвечает "hello world".

hello('hello world').

затем спросите факт:

?- hello(X).

однако, в зависимости от компилятора PROLOG, у вас, вероятно, есть write() правило, которое вы могли бы использовать:

?- write('hello world'), nl.

writeln('hello world').