2017-12-01 8 views
1

プロローグでの戻り値は、それは私が私のコードに問題があるかわからない、間違った答えを与えるいくつかのケースを入れて設定し私はプロローグで2つの<strong>ペアノの数</strong>のMOD機能でシンプルなケースを記述しようとしています

シンプルなケースCは、DリターンC

mod(C,D,F):- smaller(C,D) -> mod(C,D,C). 

よりも小さい私は出力

はあなたに感謝していない場合 です。単にこれにより

+2

よりも小さい場合つまり、Cを返します。 'small(C、D)'が成功した場合)、 'C 'が' mod''''''( 'mod(C、D、C)'を呼び出すと再帰的にチェックされ、無限回帰になります。あなたの結果は 'F'でなければなりませんが、あなたの述語節では' F'を参照しません。 'F'のためのsingleton変数の警告を見たと思います。 (C、D) 'が成功するか(ヒント:' F '何かであることを確認してください。) – lurker

+0

はいこの状態が正しいかどうかを確認したいcより小さいdを返すc –

+1

ヒントを慎重に読んでください。 – lurker

答えて

1

: -

mod(C,D,C):- smaller(C,D) 

smaller述語がtrueを返す場合には、(CがC 'がD' `よりも小さい`場合D.

関連する問題

 関連する問題