Upcoming SlideShare
×

# Thesis

240 views

Published on

0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
240
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
2
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Thesis

1. 1. Paradigm BlendKnowledge Gap for Devs
2. 2. Those interested in Monads have no goodstarting placesCategory Theory
3. 3. Functional abstractions arepatternsOrigin in math
4. 4. What’s a Monad?A Monad is just a Monoid in the categoryof endofunctors
6. 6. FunctorsFrom the ground up
7. 7. Functors are containersType Constructors - F[A]
8. 8. Functors need to have a Map function mapYou did take PLP with Wallingford,right?
9. 9. def map[A,B](cont: List[A], f: A => B)Apply the function f to each elementHigher Order FunctionsHigher Order Functions
10. 10. Functors need a map methodFunctors are containersLift arity-1 function to a functionthat works on computationalcontext
11. 11. Applicative FunctorsApplicative Functorscurrying functions is fun
12. 12. Lifts an n-arity function to work oncomputational context throughcurrying.Currying?x => (y => x + y)
13. 13. Applicative is just a more generalized Functor
14. 14. Applicative Stylepure(+) <*> pure(3) <*> pure(4)
15. 15. Recap: Functors lift 1-arity Applic lift n-arity
16. 16. Monoida distant cousin
17. 17. Type-class which have values that canbe combinedBinary operation must be associative
18. 18. object StringMonoid { def mAppend(x: String, y: String): String = x + y def mEmpty: String = "" }