2012-01-26 19 views
0

私は「recives」リストと、それはそれで繰り返しを持っている場合にのみtrueを返すことhasRepetitionを書くしようとしています。チェックの繰り返し - プロローグ

私が書いた:hasRepetition([ヘッド|しっぽ]): - メンバー(ヘッド、テール); hasRepetition(テール)。

7 - ?hasRepetition([1,1])。 エラー:toplevel:未定義プロシージャ:hasRepetition/1(DWIMが目標を修正できませんでした)

答えて

3

プロシージャ定義は正常です。

私はあなたの名前があなたのコードを持っているファイルの名前であなたのコード、すなわちconsult(name).に相談するのを忘れたと思います。

1

は、私はすでにあなたに答え(1)を得@gusbroと思います。しかし、あなたが書いた手順は非常に非効率的であることに注意してください。

まず、代わり部材のmemberchk/2が使用されるべきです。次に、分離の前にカットを入れてください。さもなければ、あなたのコードはバックトラッキングで呼び出された場合(例えば、findall内で...)

関連する問題