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
130
0
Share
Monads na prática - QConSP 2014
Breno Ferreira
April 09, 2014
More Decks by Breno Ferreira
See All by Breno Ferreira
TDC Globo Sistemas Distribuídos
brenoferreira
1
100
Trabalho Remoto TDC Globo 2020
brenoferreira
1
120
Immutable Da
brenoferreira
0
97
Remote Work
brenoferreira
0
100
Fun with Types
brenoferreira
0
230
RxJava
brenoferreira
1
410
.NET Além do Mundo Microsoft
brenoferreira
0
96
TDC2013 - Programação assíncrona com Javascript
brenoferreira
1
570
TDD com Javascript
brenoferreira
1
520
Other Decks in Programming
See All in Programming
実用!Hono RPC2026
yodaka
2
290
How Swift's Type System Guides AI Agents
koher
0
320
個人的に嬉しかったpnpmの新機能・3選
matsuo_atsushi
0
120
ついに来た!本格的なマルチクラウド時代の Google Cloud
maroon1st
0
340
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
170
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
19
9.2k
mruby on C#: From VM Implementation to Game Scripting (RubyKaigi 2026)
hadashia
2
1.4k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
360
クラウドネイティブなエンジニアに向ける Raycastの魅力と実際の活用事例
nealle
2
230
Road to RubyKaigi: Play Hard(ware)
makicamel
1
520
実践CRDT
tamadeveloper
0
610
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
950
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
230
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
190
Bash Introduction
62gerente
615
210k
What's in a price? How to price your products and services
michaelherold
247
13k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
170
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
My Coaching Mixtape
mlcsv
0
110
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.4k
We Have a Design System, Now What?
morganepeng
55
8.1k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
130
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