ラムダ計算と組み合わせロジックは同じですか?


26

私は現在、ヒンドリーとセルディンの「ラムダ計算と結合子」を読んでいます。私は専門家ではありませんが、関数型プログラミング(LispとSICPから始まり、現在はRとHaskellに関係している)のため、ラムダ計算に常に関心を持っています。

バイナリラムダ計算と組み合わせロジック」では、John Trompは次のように述べています。

CLは、ラムダ計算のサブセットと見なすことができます。理論はほとんど同じであり、拡張性の規則が存在する場合は同等になります。

どのような条件下で、ラムダ計算の代わりに組み合わせロジックを使用しますか?

すべての参考文献をいただければ幸いです。


HP Barendregtによる「ラムダ計算:その構文とセマンティクス」をご覧ください。
カベ

回答:


15

組み合わせロジックを区別するのは、変数がないことです。これは、変数の状態が扱いにくいメタ数学や哲学的論理で役立つ場合があります。

また、変数の管理は頭痛の種になる可能性があるため、実装でも役立つ場合があります。Cf.、例えば、ヒューズ、1982、スーパーコンビネーター:適用可能な言語の新しい実装方法


3
組み合わせロジックは実装ではもはや有用とは見なされず、「変数の管理が頭痛の種になる可能性がある」ため、使用されませんでした。コンビネータとバリアントは、遅延言語のグラフ削減を実装するために使用されていましたが、最近ではHaskell(最も有名な遅延言語)は、より合理的な手法を使用してグラフ削減を実装しています。
ブレイザーブレード

「ストック・ハードウェア上の怠惰な関数型言語の実装:ひ弱なタグの設定が不要G-機」、例えばS.ペイトン・ジョーンズ、1992を参照してください- research.microsoft.com/copyright/accept.asp?path=/users/simonpj/...を
Blaisorblade

2
@Blaisorblade:コンビネーターとバリアントは、遅延言語のグラフ削減を実装するために使用されました -注意:Haskellとghcは同じではなく、文献にはいくつかのスーパーコンビネーターベースのHaskells 含まれています。しかし、それは事実です。関数型プログラミングの最先端技術は、その複雑さを上回る処理環境の効率的な利点を発見しました。たとえば、高階ロジックプログラミングなどで使用されるスーパーコンビネーターが表示されますが、これは当てはまりません。スーパーコンビネーターは、高次プログラミングの実装に使用される手法のインベントリの一部です。
チャールズスチュワート

スーパーコンビネーターは、バインドされた変数ではなく、自由変数のみを回避するため、組み合わせロジック自体の使用とは見なせません。それらはほとんど特別なラムダ用語です。スーパーコンビネーター、ラムダリフトプログラム(存在する場合、不明)およびGHCの実装(クロージャーからその自由変数へのポインターは、純度のおかげでホスト関数からコピーできます)には、はるかに小さな違いがあります。そうは言っても、最近のUtrecht Haskell Compilerについても考えていました。これはGHCに非常に似ていますが、IIRCはラムダリフティングを使用しています。それでも、それはCLではありません。
ブレイザーブレード

高階ロジックプログラミングを知らなかった-springerlink.com/content/t68777w270713p5nの論文を見つけました。残念ながら、それを読む時間はありそうにない。
ブレイザーブレード

4

John Trompのコメントを参照して、私は組み合わせロジックラムダ計算と非常に異なると感じていることに注意したいと思います。興味は関数型プログラミングに由来するため、組み合わせロジックについてあまり知りたくありません。

組み合わせ論理に関する私のお気に入りのチュートリアルは、ケンブリッジ大学の講義ノートにあります

ただし、いわゆる遅延(または適用可能)言語の実装を説明するために導入されています。以前のコメントで述べたように、そのような手法は今では時代遅れです。


組み合わせ言語は遅延/適用言語を実装するために使用されなくなったため、現在の最先端技術は何ですか?そして、これらの技術を分類するための名前/カテゴリはありますか?
CMCDragonkai

@CMCDragonkai 議論については、cstheory.stackexchange.com / a / 306/989へのコメントを参照してください。実用的な短い答えは「GHCの機能に関する論文を参照」です。遅延プログラムを高速化するために組み合わされるさまざまな手法(STGマシンと厳密性分析などの最適化を含む)があります。
ブレイザーブレード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.