Like this presentation? Why not share!

# Thesis PPT

## by Drew Ferkin, Graphic Design Intern at Banno on Dec 14, 2012

• 781 views

### Views

Total Views
781
Views on SlideShare
780
Embed Views
1

Likes
0
3
0

### 1 Embed1

 https://duckduckgo.com 1

### Categories

Uploaded via SlideShare as Microsoft PowerPoint

## Thesis PPTPresentation Transcript

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