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 ответов
вы можете написать исходный файл как для запуска интерпретатора пролога, так и для выхода из него, когда ваш код будет выполнен. Вот пример использования 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.