カテゴリー理論的枠組みを利用するモナドの自然発生


18

今日、ヘニング・カースタンの講演(「確率的遷移システムのためのトレース意味論」)が初めてカテゴリ理論に直面しました。彼は、確率論的な遷移システムとそれらの挙動を一般的な方法で、すなわち数え切れないほど無限の状態セットとトレースの異なる概念で記述するための理論的枠組みを構築しました。この目的のために、彼は抽象化のいくつかの層をたどり、最終的にモナドの概念に行き着き、それをメジャー理論と組み合わせて必要なモデルを構築します。

最後に、最初に5分で説明した概念を記述するためのフレームワークを(おおよそ)構築するのに45分かかりました。私はこのアプローチの美しさを評価しています(トレースの異なる概念をうまく一般化します)が、それでも奇妙なバランスとして印象づけられます。

私はモナドが本当に何を見るのに苦労され、どのように一般的なAのコンセプトは用途に有用であることができます(両方の理論と実践で)。結果的に努力するだけの価値はありますか?

したがって、この質問:

モナドの抽象的な概念を適用でき、望ましい結果を導き出すのに役立つ(CSの意味での)自然な問題がありますか(または手段なしでも)(まったくまたはなしでより良い方法で)?


2
純粋に機能的なプログラミング言語で状態をエンコードしますか?これは自然なCS問題ですか?
ステファンギメネス

2
関数型言語でのエフェクト処理のより一般的な問題は、私が最もよく見た例です。理論上、エフェクトのモナドはセクシーであり、実践上、HaskellのIOモナドは非常に便利です。
-jmad

そして、従来の比較的軽量なセマンティクスと比較した場合の利点は何でしょうか?FPモナドはカテゴリー理論と同じものですか?質問に対する質問。
ラファエル

カテゴリー理論の使用後のより一般的な質問については、cstheory.SEのこの質問を参照してください。
ラファエル

回答:


6

モナドの出現が自然かどうかを尋ねることは、(グループ理論の意味での)グループが自然かどうかを尋ねることに似ています。何かを形式化すると、この場合はエンドファンクターとして、モナドであることの公理を満たします。公理を満たせば、多くの技術的機械を無料で入手できます。

Moggiの論文「計算とモナドの概念」は、取引をほぼ完全に封印します。ワドラーまた、ファンクターがデータ型コンストラクターであるという接続を使用して、関数型プログラミング言語の計算効果を扱うためにこれらの概念を翻訳しました。これにより、ケーキにアイシングが追加されます。FPモナドを使用すると、IOのような非常に不自然なIOなどの計算効果を処理できます。モナドは、矢印やイディオムなどの機能的なプログラムを構築するのにも非常に役立つ関連する便利な概念に影響を与えました。参照については、Wadlerリンクを参照してください。FPモナドは、FPモナドが機能するために同じ方程式を保持する必要があるという意味で、カテゴリ理論モナドと同じものです。コンパイラはこれらに依存します。一般に、モナドの表現は異なります(異なるが同等の操作と方程式)が、これは表面的な違いです。

一例を挙げると、バートジェイコブスの膨大な量の仕事はモナドを使用しています。多くの仕事は、システムの一般的な理論である石炭代数学に由来しています。Jacobsのこの分野への(多くの)貢献の1つは、モナドに基づいたシステム(coalgebrasと呼ばれる)のトレースセマンティクスの一般的な概念の開発です。トレースセマンティクスの概念は自然であると主張することができます。システムのセマンティクスとは何ですか?観察できるアクションのリスト!

モナドを理解する1つの方法は、モナドを使用してHaskellで最初にプログラムすることです。次に、利用可能な多くの優れたチュートリアルの1つを見つけます(グーグル経由)。プログラミングの角度から始めて、いくつかの基本的なカテゴリー理論から始めて、理論的な側面に進みます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.