为什么我在试用conc时在Prolog中出错?

时间:2013-10-08 20:31:46

标签: prolog

如果我在Prolog中尝试下一个查询,我收到错误......

Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 6.4.1)
Copyright (c) 1990-2013 University of Amsterdam, VU Amsterdam
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.

?- conc([a,b], [c,d], [a,b,c,d] ).
ERROR: toplevel: Undefined procedure: conc/3 (DWIM could not correct goal)

这是因为我没有加载带有事实和规则的单独文件吗?因为这看起来很奇怪。例如,下一个查询可以正常工作:

?- member(apple, [apple, broccoli, crackers]).
true .

2 个答案:

答案 0 :(得分:1)

您使用的是SWI-Prolog作为解释器,并且没有随附的内置谓词conc。您可以查看 append/3 (这也是 list library 的谓词,但请注意,在SWI中,此库会自动加载在其他实现中并不总是如此,例如,请参阅Yap,因此您最好使用 use_module )。

您是否正在学习Bratko的“人工智能Prolog编程”中的Prolog? (如果答案是肯定的,你最好自己尝试实现这些谓词:))

答案 1 :(得分:0)

请参阅FAQ。您只能在顶级提示符下输入查询