TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
VBで作られた有名なアプリって何?
MSX-BASICの奥義を伝授するスレ
   TensorFlow 0.12
【ActionScript3】Webツールを作ろう【GPL】
【Delphi互換!?】FreePascal/Lazarus その2【GPL】
Mathematicaプログラミング 質問箱 その1
【.cmd】 バッチファイルスクリプト %13 【.bat】
なぜ「staticおじさん」は叩かれたのか?
ExcelVBAで勤務表を作ろう
【GNU】Emacs Lisp 【Elisp】
88 :
>>87

X -> m Y というタイプの関数をたくさん繋げたいという気持ちがあるわけ。mがモナドだとするとき
m でラップされた型、たとえば m Int だとか m () だとかを「mという文脈を付与された型」だと思う
ことにします。m としては IO や Maybe を考えれば考えやすい。

f :: X -> m Y
g :: Y -> m Z

みたいなのがあったとき、fの結果の文脈を引き継いでgを計算したいわけ。たとえば m が
Maybeならば、fの結果は Nothing かもしれないわけ。IOだったら、実行時環境からIOで
ラップされた値を受け取ってるかもしれない。そういうのを受けて g を計算したいわけ。

このとき、>>= があるおかげで

(f x) >>= g

というのが計算できるわけ。「fのあとにg」というのを素朴に、思いついたままにやろうとすると

g ( f x) -- 型が合ってないので illegal

だけど、これは m 一個分型がずれてるからダメ。>>= は、一個分の m を吸収して
適用してくれる。だから、「モナドでラップされた値を取り出して適用してくれる」
みたいな言われ方をするけど、まあ、結果としてそう見えるようなうまい定義が
されてる。(例えばモナド則なんかがそんなうまい定義の背景にあって、そういうのを
どうやって思いついたか説明しようとすると圏論の話しになる。しらんでいい。)

【信者】C++の問題点【アンチ】
Kotlin 4
LLにおける関数型プログラミング
【魔法】リリカル☆Lisp【言語】
Rubyの設計上の欠点とは何か?
Perlについての質問箱 64箱目
C++使って何するの?
C++相談室 part142
なあ、再帰関数好きな人いる? パート3
次世代言語21 Go Nim Rust Swift Kotlin TypeScript
--------------------
大河のミスキャスト
(´・ω・`)のほほんとチャーハン作るよ!
ロビー趣味部
消費税増税 いつまで待たせるのか − 読売新聞
【DELL】Latitude 10 Part3
変拍子燃え
三大・何でこいつが人気なのか理解出来ない女優「長澤まさみ」「深田恭子」「安田美沙子」あと一人は?
カール・マルクス
■■速報@ゲーハー板 ver.52097■■
【PS2/PSP】ペルソナ3 ポータブル 学園生活144日目【P3/FES/P3P】
【国産DAW】ABILITY Part.2【本スレ】
魅力的なキャラってどうやったら作れるんだ
Microsoft Surface Pro Part19
なんUNNNJ部★6
【規格】新・新規格【変更】
ラブマスターベトナム2
【ゆゆゆい】結城友奈は勇者である 花結いのきらめき Part352
【社会】ネットカフェに22時間。カニチャーハンやピザなど飲食し「金がないので警察呼んで」。22歳無職の男を逮捕。札幌市
沖縄離島
【疾走】重松清8【エイジ】
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼