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
100
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
60
Trabalho Remoto TDC Globo 2020
brenoferreira
1
75
Immutable Da
brenoferreira
0
51
Remote Work
brenoferreira
0
60
Fun with Types
brenoferreira
0
200
RxJava
brenoferreira
1
350
.NET Além do Mundo Microsoft
brenoferreira
0
70
TDC2013 - Programação assíncrona com Javascript
brenoferreira
1
510
TDD com Javascript
brenoferreira
1
460
Other Decks in Programming
See All in Programming
「兵法」から見る質とスピード
ickx
0
260
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
140
Benchmark
sysong
0
140
Development of an App for Intuitive AI Learning - Blockly Summit 2025
teba_eleven
0
110
Go Modules: From Basics to Beyond / Go Modulesの基本とその先へ
kuro_kurorrr
0
110
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
160
UPDATEがシステムを複雑にする? イミュータブルデータモデルのすすめ
shimomura
1
530
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
1
640
Effect の双対、Coeffect
yukikurage
5
1.4k
FormFlow - Build Stunning Multistep Forms
yceruto
1
160
単体テストの始め方/作り方
toms74209200
0
430
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
760
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
How STYLIGHT went responsive
nonsquared
100
5.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Optimizing for Happiness
mojombo
379
70k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Navigating Team Friction
lara
186
15k
Code Review Best Practice
trishagee
68
18k
The Cost Of JavaScript in 2023
addyosmani
50
8.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
920
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Fireside Chat
paigeccino
37
3.5k
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