×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
@cowboyd Hi
Slide 2
Slide 2 text
@cowboyd I’m Charles I write lots of JavaScript
Slide 3
Slide 3 text
@cowboyd Frontside https://frontside.io
Slide 4
Slide 4 text
@cowboyd Love / Hate Relationship
Slide 5
Slide 5 text
@cowboyd Super Dynamic Super Mutable
Slide 6
Slide 6 text
@cowboyd Functions, Closures, Assorted Fun
Slide 7
Slide 7 text
@cowboyd “Multi Paradigmatic”
Slide 8
Slide 8 text
@cowboyd Object Polymorphism
Slide 9
Slide 9 text
@cowboyd Object Polymorphism * observable.map() * array.map()
Slide 10
Slide 10 text
@cowboyd Object Polymorphism The bad parts
Slide 11
Slide 11 text
@cowboyd Object Polymorphism * Pollutes prototypes * Clashes with potential keys * No unifying interface
Slide 12
Slide 12 text
@cowboyd But Yay Functions!
Slide 13
Slide 13 text
@cowboyd FP == Functions?
Slide 14
Slide 14 text
@cowboyd I guess?
Slide 15
Slide 15 text
@cowboyd Enter Haskell
Slide 16
Slide 16 text
@cowboyd Bounce!
Slide 17
Slide 17 text
@cowboyd Time Passes
Slide 18
Slide 18 text
@cowboyd Bounce!
Slide 19
Slide 19 text
@cowboyd Learned Emacs LISP
Slide 20
Slide 20 text
@cowboyd Bounce!
Slide 21
Slide 21 text
@cowboyd I read Haskellbook https://haskellbook.com
Slide 22
Slide 22 text
@cowboyd Stick!
Slide 23
Slide 23 text
@cowboyd Polymorphic Functions Mind = Blown!
Slide 24
Slide 24 text
@cowboyd Typeclasses Mind = Blown!
Slide 25
Slide 25 text
@cowboyd WANT!!
Slide 26
Slide 26 text
@cowboyd But JavaScript :(
Slide 27
Slide 27 text
@cowboyd Other Options?
Slide 28
Slide 28 text
@cowboyd Purescript?
Slide 29
Slide 29 text
@cowboyd Clojurescript?
Slide 30
Slide 30 text
@cowboyd Elm?
Slide 31
Slide 31 text
@cowboyd Limited Ecosystems
Slide 32
Slide 32 text
@cowboyd Hard sell to clients and co-workers
Slide 33
Slide 33 text
@cowboyd But JavaScript !!
Slide 34
Slide 34 text
@cowboyd Javascript + Haskell
Slide 35
Slide 35 text
@cowboyd Javascript + Haskell More that Lodash/FP
Slide 36
Slide 36 text
@cowboyd Javascript + Haskell More than Ramda
Slide 37
Slide 37 text
@cowboyd Javascript + Haskell Typeclasses
Slide 38
Slide 38 text
@cowboyd Javascript + Haskell Polymorphic Functions
Slide 39
Slide 39 text
@cowboyd Javascript + Haskell Fewer Functions more operands
Slide 40
Slide 40 text
@cowboyd Funcadelic.js https://github.com/cowboyd/funcadelic.js
Slide 41
Slide 41 text
@cowboyd Funcadelic.js Category Theory and Typeclasses for Every day JavaScript development
Slide 42
Slide 42 text
@cowboyd
Slide 43
Slide 43 text
@cowboyd Funcadelic.js Functional Programming is Fun!
Slide 44
Slide 44 text
@cowboyd How Polymorphic Functions in JavaScript??
Slide 45
Slide 45 text
@cowboyd Delegate!
Slide 46
Slide 46 text
@cowboyd Example: Semigroup
Slide 47
Slide 47 text
@cowboyd
Slide 48
Slide 48 text
@cowboyd {x: 1} prototype {y: 2} Semigroup append()
Slide 49
Slide 49 text
@cowboyd
Slide 50
Slide 50 text
@cowboyd Typeclass instance really is an instance!!
Slide 51
Slide 51 text
@cowboyd Demo
Slide 52
Slide 52 text
@cowboyd Other Mentionables
Slide 53
Slide 53 text
@cowboyd Lazy
Slide 54
Slide 54 text
@cowboyd Immutable
Slide 55
Slide 55 text
@cowboyd Referential Transparency
Slide 56
Slide 56 text
@cowboyd Referential Transparency
Slide 57
Slide 57 text
@cowboyd
Slide 58
Slide 58 text
@cowboyd Thanks!