3

私のような Prolog 初心者にとって、空のリストは...奇妙です。アトムを差分リストとして書くことができないのと同じように、空のリスト[]を差分リストとして書くことはできないと言えます。ただし、再帰を使用するには、差分リストの設定でT1-T2使用する方法が必要であると思います。[]私はこれについてGoogleに問い合わせましたが、答えが見つかりません.Bratko(AIのプロローグプログラミング)は、この主題に簡単に触れているだけです.

では、空のリストを Prolog の差分リストとして書くことは可能ですか? もしそうなら、いつ、どのように役立つのでしょうか?

4

2 に答える 2

5

このトピックを理解する上での問題は、通常、誤解を招く用語の使用が原因です。

tutorial.pdf、特にpap95.pdfで推奨されているように、たとえばlist differenceまたは単にdifferenceを使用します。

初心者を教えるプロローグのセクション5には、これに関連する理由が含まれています。

空リストはアトム []によって一意に示されます。

リストの違いは常に2 つのリストについての推論を意味することに注意してください。単一のリストと複数のリストの間のこのカテゴリ的な違いにより、せいぜい何らかの対応または類推を見つけることができますが、空のリストとリストの違いの間の同一性は見つけることができません。

少なくとも最初はDCG の使用に集中する必要があるという上記の論文で表明された見解を、私は完全に支持します。差異について明示的に推論することは、後で自然に理解できるようになります。

于 2017-01-11T13:58:36.750 に答える