在prolog中打印自定义结果

在prolog中打印自定义结果,prolog,Prolog,我正在编写一个简单的prolog程序。这是我的问题 假设我已经有了水果(苹果)。 我想让程序像这样输入?-输入([什么是苹果])。 输出苹果是一种水果 对于输入,如?-输入([is,apple,a,fruit]) 我希望程序打印一些更好的短语,比如yes和no 有人能帮我吗 我的代码部分如下: input(Text) :- phrase(sentence(S), Text), perform(S). %... sentence(query(Q)) --> que


我正在编写一个简单的prolog程序。这是我的问题

假设我已经有了水果(苹果)。

我想让程序像这样输入
?-输入([什么是苹果])。

输出<代码>苹果是一种水果

对于输入,如
?-输入([is,apple,a,fruit])

我希望程序打印一些更好的短语,比如
yes
no

有人能帮我吗

我的代码部分如下:

input(Text) :-
   phrase(sentence(S), Text), 
   perform(S).
   %...
sentence(query(Q))     --> query(Q).

query(Query) --> 
   ['is', Thing, 'a', Category],
   { Query =.. [Category, Thing]}.

% here it will print true/false, is there a way in prolog to have it print yes/no, 
%like in other language: if(q){write("yes")}else{write("no")}
perform(query(Q))     :- Q.   

在Prolog中有一个构造if/else:

perform(query(Q)) :-
  (  Q
  -> write(yes:Q)
  ;  write(no)
  ), nl.
当我需要对输出格式进行更严格的控制时,我使用。 不是很友好,但提供了大多数常用选项