以下は私が思いついたコードです。しかし、ここには2つの問題があります。 最初に、Xの最初の値が1だけ表示されます.2番目に、Yがfalseの場合、メニュー1に戻ることはありません。 これでいくつかの助けを得ることを願っています。出力の全リストが必要です
time(office_hour,1).
time(office_hour,2).
menu1 :-
write('Input time'),nl,
read(Y),nl,time(Y,X),nl,write(X),nl,menu1.
これはシナリオの例です。以下に示すように、値1のみが示されている。値2を表示するには? SRY私はあなたがバックトラックへのプロローグは、ソリューションのすべてを取得することを可能にするために必要なだけの初心者
?-menu1.
Input time
office_hour.
1.
Input time
また、行動の例を投稿する必要があります。特に、あなたは何を入力していますか? 'office_hour'でなければ' time/2'は 'menu1/0'を呼び出す前に失敗します。 –
sry、私はすでに自分の投稿を更新しました。 また、 'time/2'と' menu1/0'はどういう意味ですか? 私は講師からそのような言葉を思い出すことはありません。 – Kimchi
@Kimchiあなたがそれを見るなら、Prologのドキュメントにあります。 '/ n'は' n'引数を意味します。したがって、 'time/2'は2つの引数を持つ' time'です。 3つの引数を持つ 'time'があった場合、' time/3'とは異なる述語となります。 – lurker