愚蠢的问题,但我试图让这个简单的Prolog程序正常工作。我写了其他小的Prolog程序没有问题,但是这个给我带来了麻烦:
test :- write 'test1234 test1234',nl,halt.
那就是它。该文件保存为adventure1.pl
。它使用命令行选项加载到Ubuntu上的SWI-Prolog:
prolog -s adventure1.pl
当加载到Prolog解释器中时,我输入以下内容:
start.
然而,Prolog说undefined procedure: test/0 (DWIM could not correct goal)
。这里的错误是什么,它真的很简单。我写这个是因为我有一些示例程序使用名为start的预定义来显示文本,但我甚至无法使其工作。
答案 0 :(得分:4)
write 'test1234 test1234'
是语法错误,因为SWI-Prolog清楚地表明:
ERROR: /tmp/adventure1.pl:2:10: Syntax error: Operator expected
应该是
write('test1234 test1234')
(当然,这不会解决 start 不能正常工作的问题,因为你已经定义了 test 。)