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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Breno Ferreira
April 09, 2014
Programming
0
130
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
94
Trabalho Remoto TDC Globo 2020
brenoferreira
1
110
Immutable Da
brenoferreira
0
94
Remote Work
brenoferreira
0
95
Fun with Types
brenoferreira
0
230
RxJava
brenoferreira
1
400
.NET Além do Mundo Microsoft
brenoferreira
0
89
TDC2013 - Programação assíncrona com Javascript
brenoferreira
1
560
TDD com Javascript
brenoferreira
1
510
Other Decks in Programming
See All in Programming
CSC307 Lecture 15
javiergs
PRO
0
260
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
130
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
960
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
770
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
550
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
180
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
360
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
3
1.9k
20260315 AWSなんもわからん🥲
chiilog
2
170
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
150
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
460
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
1.3k
Featured
See All Featured
Building Adaptive Systems
keathley
44
3k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
200
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
140
Paper Plane
katiecoart
PRO
0
48k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
200
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
150
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
77
Paper Plane (Part 1)
katiecoart
PRO
0
5.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
430
Navigating Team Friction
lara
192
16k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
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