我正在试图找到如何在Prolog中编写Hello World程序。我只是想创建一个像这样运行的程序:
> ./hw
Hello, world!
>
问题是我能找到的每个例子都在REPL中工作,如下所示:
?- consult(hello_world).
% hello compiled 0.00 sec, 612 bytes
Yes
?- hello_world.
Hello World!
Yes
即使编译Prolog的例子也是如此:程序仍然只是一个REPL。对于“通用”语言来说,这显然没什么用处。那么,我该如何编写传统的Hello World?
答案 0 :(得分:17)
使用GNU Prolog:
$ cat hello.pl
:- initialization(main).
main :- write('Hello World!'), nl, halt.
$ gplc hello.pl
$ ./hello
Hello World!
答案 1 :(得分:11)
您可以编写源文件以启动Prolog解释器并在代码运行完毕后退出。以下是使用SWI-Prolog的示例:
#!/usr/bin/swipl -q -t hello_world -f
hello_world :- write('Hello World'), nl,
halt.
假设你把它放在一个名为'hw'的文件中,并设置了可执行权限,你可以像你想要的那样调用它:
$ ./hw
Hello World
$
答案 2 :(得分:2)
Prolog并非真正的通用语言。我们用它来设计大学的人工智能系统。
你必须定义一个回答“你好世界”的事实。
hello('hello world').
然后,询问事实:
?- hello(X).
但是,根据PROLOG编译器,您可能有一个write()
规则,您可以使用:
?- write('hello world'), nl.
答案 3 :(得分:1)
writeln('hello world').