【发布时间】:2013-03-18 15:44:53
【问题描述】:
我正在学习 prolog,我使用 swi-prolog 作为编译器/解释器。我有这个 hello world 文件:
:- initialization(main).
main :- format('Hello, world').
但是当我尝试使用swipl -o hello.exe -c hello.pro 编译它并运行二进制文件hello.exe 时,它首先运行目标(主),然后将我返回到 swi-prolog 交互环境。我如何编译它,使它成为一个没有 prolog 环境的功能程序?
我还尝试在 main 末尾添加halt,但这根本无法编译。当我尝试这样做时,编译器会打印“Hello, world”,然后停止编译。
【问题讨论】:
-
为了清楚起见,您是说在初始化指令中将
halt放在main之后?或者您在定义main/0时添加了halt作为尾调用? -
@hardmath 作为定义
main/0的尾调用。
标签: prolog swi-prolog