>>711
AIに聞いたらいいよ。箱=計算ということらしい。計算している中で計算しても、計算していることに変わりはないから計算 計算 a→計算 aということなんだろう。
=============================
Gemini の回答
Eugenio Moggiが1989年に提案した概念の核心は、「値(Value)」と「計算(Computation)」を型レベルで厳密に区別したことにあります。
あなたが仰る通り、これは単なる圏論の抽象的な話ではなく、「プログラムが実際に何を行うか」という振る舞いを数学的に記述するための画期的なアイデアでした。
1. 「値」と「計算」の分離
純粋関数型プログラミングの世界では、通常、関数は「入力 A を受け取って出力 B を返す」という単純な写像として扱われます。しかし、実際のプログラミングには「副作用(例外、状態更新、入出力など)」が伴います。
Moggiはここに着目しました。
値 (A): 単なるデータ(例:Int の 10)。
計算 (T(A)): 「A という型の値を返すが、その過程で何らかの効果(Effect)を伴うアクション」。
この T(モナド)を導入することで、「計算のプロセスそのもの」を一つの値として扱えるようにしたのがMoggiの功績です。
2. f:A→T(B) という視点
Moggi以前の圏論的なモナドの説明は T:C→C という自己関手の性質に終始しがちでした。しかし、プログラミングにおいて重要なのは、**「純粋な値 A を受け取り、副作用を伴う計算 T(B) を返す関数」**です。
これがまさに**クライスリ射(Kleisli arrow)**です。Moggiは、この形式を使うことで、言語のセマンティクス(意味論)を壊さずに以下のような「計算のバリエーション」を統一的に扱えることを示しました。
例外処理: T(A)=A∪{error}
状態保持: T(A)=S→(A×S)
非決定性: T(A)=List(A)
3. なぜこれが「計算の概念」なのか
Moggiの提案が「計算の概念」と呼ばれる理由は、モナドの演算(unit と bind)がプログラムの制御フローを規定するからです。
unit (return): 純粋な値を「何もしない計算」の中に閉じ込める。
bind (>>=): ある計算の結果を次の計算へと「繋ぐ(シーケンシャルに実行する)」。
つまり、モナドとは**「計算をどう組み合わせるか(Composition of computations)」というルールの体系**そのものなのです。
ニュース
- 【8割おじさん】新型コロナの猛威に「人との接触を8割減らす」と呼びかけたのは正しかったか…第一線で発信を担った専門家は反省を口に [煮卵★]
- NHK、訪問営業の外部委託を再開 新規受信契約のため [少考さん★]
- 「タトゥーを入れてモテなくなった」タトゥーで後悔、HカップYouTuber [ヴァイヴァー★]
- 豚が覆いかぶさった状態で発見 農場で倒れていた22歳男性が死亡・鹿児島 [えりにゃん★]
- 【しまむら】「モデルの顔がすべて同じに見える」バースデイの広告が波紋 本社に聞いた生成AI活用の狙い [少考さん★]
- 【テレビ】平野レミ、生放送で突然告知→NHKアナ「公共放送ですよ」「本当にやめてください」 本気で怒る [冬月記者★]
- テメェきもちわリィンだよ!
- シルバーウルフ银狼のお🏡
- トランプ「CNN,とMS NOWとPoliticoはホワイトハウス出禁にするわ」ABC、CBS、CNN,、Fox News、NBC「じゃあもうお前のこと報道しねーわ」 [972432215]
- 【高市悲報】アジア大会スタッフ、タイミーだった.. [469534301]
- 【ジャップ悲報】トー横キッズ、新宿駅で一般人を警棒で無差別にボコボコにして炎上 [939270813]
- シルバーウィーク暇ならアニソン聴こうぜ・・・