Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Monads na prática - QConSP 2014
Search
Breno Ferreira
April 09, 2014
Programming
0
99
Monads na prática - QConSP 2014
Breno Ferreira
April 09, 2014
Tweet
Share
More Decks by Breno Ferreira
See All by Breno Ferreira
TDC Globo Sistemas Distribuídos
brenoferreira
1
55
Trabalho Remoto TDC Globo 2020
brenoferreira
1
72
Immutable Da
brenoferreira
0
49
Remote Work
brenoferreira
0
54
Fun with Types
brenoferreira
0
200
RxJava
brenoferreira
1
350
.NET Além do Mundo Microsoft
brenoferreira
0
68
TDC2013 - Programação assíncrona com Javascript
brenoferreira
1
510
TDD com Javascript
brenoferreira
1
460
Other Decks in Programming
See All in Programming
バイラテラルアップサンプリング
fadis
3
550
In geheimer Mission: AI Agents entwickeln
joergneumann
0
110
Boast Code Party / RubyKaigi 2025 After Event
lemonade_37
0
110
iOSアプリで測る!名古屋駅までの 方向と距離
ryunakayama
0
160
Optimizing JRuby 10
headius
0
610
파급효과: From AI to Android Development
l2hyunwoo
0
160
開発者フレンドリーで顧客も満足?Platformの秘密
algoartis
0
230
Cursor/Devin全社導入の理想と現実
saitoryc
29
22k
はじめてのPDFKit.pdf
shomakato
0
100
状態と共に暮らす:ステートフルへの挑戦
ypresto
3
1.2k
カウシェで Four Keys の改善を試みた理由
ike002jp
1
140
プロダクトエンジニアのしごと 〜 受託 × 高難度を乗り越えるOptium開発 〜
algoartis
0
230
Featured
See All Featured
BBQ
matthewcrist
88
9.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Adopting Sorbet at Scale
ufuk
76
9.4k
GitHub's CSS Performance
jonrohan
1031
460k
It's Worth the Effort
3n
184
28k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
179
53k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
RailsConf 2023
tenderlove
30
1.1k
Speed Design
sergeychernyshev
29
940
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Transcript
MONADS NA PRÁTICA @breno_ferreira Breno Ferreira
PROGRAMAÇÃO FUNCIONAL É ASSUSTADOR Functors Monoids Catamorphism MONAD
PROGRAMAÇÃO FUNCIONAL É POUCO FAMILIAR Functors Monoids Catamorphism MONAD
PROGRAMAÇÃO FUNCIONAL É POUCO FAMILIAR Mappables Monoids Catamorphism MONAD
PROGRAMAÇÃO FUNCIONAL É POUCO FAMILIAR Mappables Monoids Aggregatables MONAD
PROGRAMAÇÃO FUNCIONAL É POUCO FAMILIAR Mappables Composables Aggregatables MONAD
PROGRAMAÇÃO FUNCIONAL É POUCO FAMILIAR Mappables Composables Aggregatables Chainable
ORIENTAÇÃO A OBJETO É ASSUSTADOR! Polimorfismo Herança Variancia interfaces SOLID
SRP, OCP, LSP, ISP, DIP IoC, DI, MVC, ORM, GoF, PoEAA…
ORIENTAÇÃO A OBJETO É ASSUSTADOR! Polimorfismo Herança Variancia interfaces SOLID
SRP, OCP, LSP, ISP, DIP IoC, DI, MVC, ORM, GoF, PoEAA…
MAS O QUE É UMA MONAD?
MAS O QUE É UMA MONAD? A monad is just
a monoid in the category of endofunctors. James Iry http://james-iry.blogspot.com.br/2009/05/brief-incomplete-and-mostly-wrong.html
DEFINIÇÃO DE UMA MONAD type Monad return :: a ->
m a (>>=) :: m a -> (a -> m b) -> m b
TRADUÇÃO interface Monad<A> static Create(value: A): Monad<A> flatMap(mapper: A ->
Monad<B>): Monad<B>
MAS PARA QUE AS MONADS SÃO ÚTEIS? • Nulls •
Exceptions • Assincronia • Reactive Programming • Mutable state • etc…
HTTPS://GITHUB.COM/BRENOFERREIRA/CSHARP.FUN
OBRIGADO! @breno_ferreira