際際滷

際際滷Share a Scribd company logo
Monadなんてどうってことなかった
表云啼很
2015?03?21?モナド児A茶氏
こんにちは
表云啼很(@igrep)?25r=
Haskellの茶氏を惟造笋辰箸蠅泙后
Monadなんてどうってことなかった
ただの侏クラスだった
嚠めことわるとここでのMonadはプログラミングで聞う
Monadだった
蒙にHaskellのMonadが嶄伉だった
☆あくまでもMonadを仝聞う々ことしかしないただのプログ
ラマからの麼である泣をご否浮ください。?vim(_ _)mer
Monadなんてどうってことなかった
ただの侏クラスだった
こういう協xの侏クラスだった
class Monad m where
return :: a -> m a
(>>=) :: m a -> (a -> m b) -> m b
ただの侏クラスだけど`った
なんか笋癖垢し修できる
hoge uID = do
fname <- lookup uID firstNameDB
lname <- lookup uID lastNameDB
return $ fname ++ lname
だったり、
ただの侏クラスだけど`った
こんなん
foo = do
tell ["hello, "]
tell ["world!"]
だったり、
ただの侏クラスだけど`った
こんなんだったり...。
main = do
putStr "こんなんだったり"
replicateM_ 3 $ do
threadDelay 1000000
putStr "."
putStrLn "。"
採がどうなってんの。
gでなんかしてるだけだった
?の栽、
gでなんかしてるだけだった
?のところでなんかしてるだけだった。
醤悶議にはJustかNothingか登協してるだけだった。
gでなんかしてるだけだった
?の栽、
gでなんかしてるだけだった
?のところでtellをg佩するたびになんかしてるだ
けだった。
醤悶議には哈方に嚥えたものをログとして弖して
るだけだった。
desugarしたらもっとgだった
lookup uID firstNameDB >>= (fname -> ...)
>>=?がなんかしてる
やっぱりJustかNothingか登協してる
ほかも寄悶匯wだった
List:?勣殆を1ずつ函り竃してる
State:?v方が卦した仟しい彜Bで厚仟してる
Parser:?嚥えられた猟忖双をMしてる
IO:?なんかいろいろやってる
ほかも寄悶匯wだった
なんやかんやで寄並なことはだいたい>>=の嶄でやって
る
だからMonadはMonadとしてひとくくりにできる。
揖じなのは
箭のモナドt。
箭のモナドt
仝g|採もしない々I尖(return)があること
箭のモナドt
do隈で
do
a <- do
b <- foo
bar b
baz a
みたいにいたり、
箭のモナドt
do隈で
do
b <- foo
do
a <- bar b
baz a
みたいにY栽の碧圭に櫃鯤垢錣覆てよくなっていること
┐海寮と念のスライドの箭が駅ず揖じ吭龍になること
`うのは
>>=でやってること。
>>=でやってること
仝箭のモナドt々を困燭擦从里世辰討い
およそ仝返Aき々っぽいものであればなんでもいい。
Stateも、IOも、あるんだよ
>>=でやってること
採もしてなくたっていい(Identity?Monad)
碧並してなくってもいい(ニ`ト?Monad)
}方のMonadがやってることを篠せ鹿めても┫鶺孱いい
Monad?Transformer
採だったんだ...
仝採でもいい々からyしい。
なんだかいろいろできるのでまとまらない┐茲Δ牧える
そのクセdo隈なんて喘吭して蒙eQい。
まとめ
HaskellのMonadはあくまでも侏クラスだった
寄並なことはだいたい>>=でやってた
やってることはみんな`った
みんなちがって、みんないい。
ニ`トでもいい。
採でもできるからよくわからなくなっていた

More Related Content

Viewers also liked (13)

PDF
ATS programming on ESP8266
Kiwamu Okabe
?
PDF
Metasepi team meeting #14: ATS programming on MCU
Kiwamu Okabe
?
PDF
Embedded application designed by ATS language
Kiwamu Okabe
?
PDF
ATS language overview
Kiwamu Okabe
?
PDF
Metasepi team meeting #19: ATS application on Arduino
Kiwamu Okabe
?
PDF
Metasepi team meeting #16: Safety on ATS language + MCU
Kiwamu Okabe
?
PDF
Start! ATS programming
Kiwamu Okabe
?
PDF
ATS Programming Tutorial
Kiwamu Okabe
?
PDF
Real-time OS system state captured by ATS language
Kiwamu Okabe
?
PDF
Metasepi team meeting #20: Start! ATS programming on MCU
Kiwamu Okabe
?
PDF
ATS language overview'
Kiwamu Okabe
?
PDF
Static typing and proof in ATS language
Kiwamu Okabe
?
PDF
フォントの僉び圭?聞い圭
k maztani
?
ATS programming on ESP8266
Kiwamu Okabe
?
Metasepi team meeting #14: ATS programming on MCU
Kiwamu Okabe
?
Embedded application designed by ATS language
Kiwamu Okabe
?
ATS language overview
Kiwamu Okabe
?
Metasepi team meeting #19: ATS application on Arduino
Kiwamu Okabe
?
Metasepi team meeting #16: Safety on ATS language + MCU
Kiwamu Okabe
?
Start! ATS programming
Kiwamu Okabe
?
ATS Programming Tutorial
Kiwamu Okabe
?
Real-time OS system state captured by ATS language
Kiwamu Okabe
?
Metasepi team meeting #20: Start! ATS programming on MCU
Kiwamu Okabe
?
ATS language overview'
Kiwamu Okabe
?
Static typing and proof in ATS language
Kiwamu Okabe
?
フォントの僉び圭?聞い圭
k maztani
?

More from 啼很 表云 (6)

PDF
Haskell-jpらしさって? 仝?議々と仝試咫垢里垢戮討鮟瞠h? ‐プログラミング?Zコミュニティ`としての Haskell-jp/
啼很 表云
?
PDF
Introduction to stack's docker integration (1)
啼很 表云
?
PDF
Whom to Recommend Elm to?
啼很 表云
?
PDF
いつもどおりのテンションでしゃべる掘庄乙鞄岳の講霧
啼很 表云
?
PDF
永姻艶糸艶韓を聞った壊援鉛のトレ`ス
啼很 表云
?
PDF
Monad as things to do
啼很 表云
?
Haskell-jpらしさって? 仝?議々と仝試咫垢里垢戮討鮟瞠h? ‐プログラミング?Zコミュニティ`としての Haskell-jp/
啼很 表云
?
Introduction to stack's docker integration (1)
啼很 表云
?
Whom to Recommend Elm to?
啼很 表云
?
いつもどおりのテンションでしゃべる掘庄乙鞄岳の講霧
啼很 表云
?
永姻艶糸艶韓を聞った壊援鉛のトレ`ス
啼很 表云
?
Monad as things to do
啼很 表云
?
Ad

Monadなんてどうってことなかった - Monadなんてただの侏クラス