私はPrologの基本プロジェクトに取り組んでいます。私は、入力リストに基づいて数値を返す関数を記述したいと思います。私はまた、入力リストが空の場合、結果が偽であることを確認したい。 関数は次のようになります parseList(List、N)ここで、Nは数値です。私が試してみると、Falseを返す方法を知りたいです。条件がプロローグでfalseを返す場合
parseList([], N).
ここでNは任意の数値です。
私はしかし、これは動作するようには思えない基本ケース
parseList([], False).
のためにこれをやってみました。
誰でも私に手伝ってください。ありがとうございました!
Prologで 'false'の値を返すことはありません。与えられた引数で成功できない場合、述語は失敗します(結果は 'false')。したがって、空のリストをサポートする述語句がないと自動的に失敗します。あなたのコードから 'parseList([]、N)'をそのまま残してください。 – lurker
しかし、述語をサポートするための基本ケースは存在しないはずです。リストが空でないときの述語の停止ポイント? – therealdev
あなたのベースケースは空のリストを扱う必要はありません。例えば、*、 'parseList([X]、N): - ...'ならば、あなたの再帰的なケースは2つ以上の要素を扱うことができます。 'parseList([X、Y | T]、 N): - ... '。 – lurker