回答:
人工知能の 3つの部分はすべて、George F. Lugerによる複雑な問題解決のための構造と戦略です。本の第4版では、セクション15.8、LISPの論理プログラミングで、3つの部分すべてがLISPに実装されています。彼は他の本にも同じコードを書いていますが、ここで注意するためのすべてを持っているわけではありません。彼の本のコードはここにあります。
3つの部分すべてを備えた別のソースは、人工知能プログラミングのパラダイムにあります。PeterNorvigによるCommon Lispのケーススタディです。第11章「ロジックプログラミング」および第12章「ロジックプログラムのコンパイル」を参照してください。彼の本のコードはここにあります。
別のソースは、Hal Abelson、Jerry Sussman、Julie Sussmanによるコンピュータープログラムの構造と解釈です。セクション4.4ロジックプログラミングを参照してください。本のサイトはこちらで、本のコードはこちらです。
見どころがわかっている場合、多くのアプリケーションで実装されているバックチェーンを備えた統合アルゴリズムを見つけることは珍しくありません。関数型コンパイラの型推論では特に一般的です。キーワードの統一または発生を使用すると、機能を見つけるのに役立ちます。また、ほとんどの実装では、統合関数の名前にunifを使用します。
OCamlで行われるREPLを除くPrologのバージョンについては、「実用的なロジックと自動推論のハンドブック」のコードとリソースを参照してください-prolog.ml
ブックコードのF#への翻訳はこちらにあります。書籍コードのHaskellへの翻訳はこちらにあります。
コードを見つけるという点では、統合アルゴリズムを見つけるのが最も簡単であり、その後、アプリケーションに埋め込まれたバックチェーンを備えた実装です。REPLを使用して関数型言語でPrologの完全に機能する実装を見つけることが最も困難です。ほとんどの場合、コードはPROLOG内で直接使用できる形式ではありません。パフォーマンスを向上させるために大幅にカスタマイズされているため、コードを見つけることはできますが、必要な部分をいじるのに値する価値はありません。私のアドバイスは、LISPをインストールして学習し、翻訳を行うことを意味する場合でも、選択した言語でLugerの本を読んでゼロから作成することです。
編集
これはStackOverflowからの重複した質問であり、OPは新しく、コメントに次のように記載されているためです。
より多くのコンテキストを与えるために、私は型推論を実装しようとしていますが、私の言語の型システムの複雑な機能(依存型、洗練型、あまり一般的でないいくつかの名前を付けるための線形型付け)によって、非常に一般的なアルゴリズムを取得するために、Prologを駆動するアルゴリズムに基づいて型推論を行うのに役立ちます 私は完全に独学であることに気付くので、広い分野で知識が不足しています。
ここでこれを拡張しますが、OPが新しい質問をする必要があることを理解します。
いくつかのイントロについては、型推論の実装を参照してください。
私がこれについて知っている最高の本は、Benjamin C. Pierceによる型とプログラミング言語です。本のサイトはこちらです。OCamlコードへのリンクがあるリソースはこちらです。そして最近開始されましたが、これのほとんどF#への翻訳はこちらです。
依存型:pg。462絞り込みタイプ:pg。207線形論理と型システム:pg。109
私のプログラミング言語zooでminiprologの実装を参照してください。これはリストの最後のものです。ソースコードはオンラインで見ることができ、コードはよく文書化されています。