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
120
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
89
Trabalho Remoto TDC Globo 2020
brenoferreira
1
110
Immutable Da
brenoferreira
0
87
Remote Work
brenoferreira
0
88
Fun with Types
brenoferreira
0
220
RxJava
brenoferreira
1
390
.NET Além do Mundo Microsoft
brenoferreira
0
82
TDC2013 - Programação assíncrona com Javascript
brenoferreira
1
550
TDD com Javascript
brenoferreira
1
500
Other Decks in Programming
See All in Programming
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
180
NetBSD+Raspberry Piで 本物のPSGを鳴らすデモを OSC駆動の7日間で作った話 / OSC2026Osaka
tsutsui
1
120
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
1k
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.9k
その「common」ディレクトリ、腐っていませんか?
kinocoboy2
1
100
Head of Engineeringが現場で回した生産性向上施策 2025→2026
gessy0129
PRO
0
180
Swift at Scale: Where Performance Really Comes From
kateinoigakukun
0
120
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
180
Apache Iceberg V3 and migration to V3
tomtanaka
0
210
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
7
1.1k
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
180
Oxlint JS plugins
kazupon
1
1.1k
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
120
Measuring & Analyzing Core Web Vitals
bluesmoon
9
760
Being A Developer After 40
akosma
91
590k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
The SEO Collaboration Effect
kristinabergwall1
0
370
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
210
Claude Code のすすめ
schroneko
67
210k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
340
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
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