0


私は簡単なプロローグプログラムに取り組んでいます。これが私の問題です。

私はすでに事実を持っていると言うfruit(apple).

プログラムにこのような入力をしてもらいたい?- input([what,is,apple]).

と出力apple is a fruit

?-input([is,apple,a,fruit])
そして、デフォルトのprintやの代わりにのような入力のtrue場合、プログラムにとfalseのようなより良いフレーズを印刷させたいyesno

誰かがこれを手伝ってくれますか?

私のコード部分は以下の通りです:

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.   
4

1 に答える 1

0

Prolog には、if/else という構文があります。

perform(query(Q)) :-
  (  Q
  -> write(yes:Q)
  ;  write(no)
  ), nl.

出力フォーマットをより厳密に制御する必要がある場合は、formatを使用します。あまりフレンドリーではありませんが、通常のオプションのほとんどを提供しています...

于 2012-10-14T21:36:17.870 に答える