Подтвердить что ты не робот

Привет, мир в Прологе

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

> ./hw
Hello, world!
>

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

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

Yes
?- hello_world.
Hello World!

Yes

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

4b9b3361

Ответ 1

Использование GNU Prolog:


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

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

Ответ 2

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

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

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

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

$ ./hw
Hello World
$

Ответ 3

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

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

hello('hello world').

Затем задайте вопрос:

?- hello(X).

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

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

Ответ 4

writeln('hello world').