Ответ 1
Использование GNU Prolog:
$ cat hello.pl
:- initialization(main).
main :- write('Hello World!'), nl, halt.
$ gplc hello.pl
$ ./hello
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
Это то же самое даже с примерами скомпилированного Prolog: программа все еще просто переходит в REPL. Это, очевидно, не очень полезно для "общего" языка. Итак, как мне написать традиционный Hello World?
Использование GNU Prolog:
$ cat hello.pl
:- initialization(main).
main :- write('Hello World!'), nl, halt.
$ gplc hello.pl
$ ./hello
Hello World!
Вы можете написать исходный файл, чтобы запустить интерпретатор Prolog и выйти из него, когда ваш код будет запущен. Вот пример использования SWI-Prolog:
#!/usr/bin/swipl -q -t hello_world -f
hello_world :- write('Hello World'), nl,
halt.
Предполагая, что вы поместили это в файл с именем "hw" и установили разрешение на выполнение, вы можете называть его так, как вы хотите:
$ ./hw
Hello World
$
Пролог не является языком общего назначения. Мы используем его для проектирования систем искусственного интеллекта в университете.
Вам нужно будет определить факт, который отвечает "hello world".
hello('hello world').
Затем задайте вопрос:
?- hello(X).
Однако, в зависимости от компилятора PROLOG, у вас, вероятно, есть правило write()
, которое вы могли бы использовать:
?- write('hello world'), nl.
writeln('hello world').