创建一个谓词,该谓词将在调用时为查询编写解决方案

时间:2019-03-20 13:27:38

标签: prolog

查找将在给定数据库的情况下收集正确解决方案的查询。

此后,我们必须使用这些查询来创建一个名为“答案”的谓词,以便键入“答案”。在Prolog中将写出所有解决方案。

例如它应该看起来像:

? - answer.
[solution to a]
[solution to b]
[solution to c]
true.

但是,我不确定如何在不需要传递任何项目/变量的地方创建谓词。每当我尝试创建谓词“ answer”并调用它时,都会出现错误,提示“ answer”不能包含0个项目。

编辑:问题是:

使用上面的确切查询,并创建一个谓词“答案”,该谓词使用上面的答案进行打印,即以下查询将起作用:

?-答案。

[问题a的解决方案]

[问题b的解决方案]

[问题c的解决方案]

是。

1 个答案:

答案 0 :(得分:1)

要回答queries from above的事实,因为没有给出。

question_1(42).
question_2("Towel").
question_3("Thanks for all the fish.").

代码

answer :-
    question_1(Answer_1),
    format('Answer 1: ~w~n',[Answer_1]),
    question_2(Answer_2),
    format('Answer 2: ~w~n',[Answer_2]),
    question_3(Answer_3),
    format('Answer 3: ~w~n',[Answer_3]).

示例运行:

?- answer.
Answer 1: 42
Answer 2: Towel
Answer 3: Thanks for all the fish.
true.

笔记的唯一部分是format/2以打印答案。