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
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
110
Trabalho Remoto TDC Globo 2020
brenoferreira
1
130
Immutable Da
brenoferreira
0
100
Remote Work
brenoferreira
0
110
Fun with Types
brenoferreira
0
250
RxJava
brenoferreira
1
420
.NET Além do Mundo Microsoft
brenoferreira
0
110
TDC2013 - Programação assíncrona com Javascript
brenoferreira
1
590
TDD com Javascript
brenoferreira
1
540
Other Decks in Programming
See All in Programming
My Marp Sample
sinoue0108
0
110
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
360
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
360
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
200
初めての模倣学習とVLA
natsutan
0
180
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
690
MySQLとPostgreSQLって何が違うの?
akagami
0
130
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
5
510
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
100
源内ハンズオン概要編
hideg
0
210
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
280
Hono + Inertia + React で LP を構築した話
oukayuka
2
140
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1.3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
570
HDC tutorial
michielstock
2
810
The SEO Collaboration Effect
kristinabergwall1
1
530
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
380
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Utilizing Notion as your number one productivity tool
mfonobong
4
550
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
430
Being A Developer After 40
akosma
91
590k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
300
It's Worth the Effort
3n
188
29k
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