@robashton
AngularJS,Rails,Ruby,C#,Java,JavaScript,Ember,Node,Semicolons, Object orientated code, Design patterns, Procedural code, Imperative code, Dynamic languages, Bad coffee,Visual Studio,Emacs, Making slide decks, MacOS,Wearing clothes,Wearing shoes,Exercise,Software development
I know programming
F********** ANGULAR
And earn megabucks the rails way
(You don't need a degree to go climbing)
Skipping "leg day"
Being young has advantages
(Here's the punchline)
Yes, Haskell
The revelation.
Trying to just "jump in and build shit" with Haskell
github.com/bitemyapp/learnhaskell
Solves problems we didn't even know we had
- "If statements are so tedious"
- "Why would I ever want to write for loops"
- "Recursion? Pfft - I'll just use a built-in"
Writing a function to append an item to another?
appendNode :: Tree -> Tree -> Tree
appendNode parent child = .... etc
mappend :: a -> a -> a
It's probably a Monoid..
instance Tree Monoid where
mappend = addNode
mempty = Leaf
And suddenly...
addNodes :: Tree -> [Tree] -> Tree
addNodes t [] = t
addNodes t (x:xs) = addNodes (t mappend x) xs
addNodes :: Tree -> [Tree] -> Tree
addNodes = foldr mappend
Naawww
(actually, this exists and is called mconcat)
But not easy
"Making it easy to skip leg day"
PureScript
Elm
(Cljs/Om)
Etc
Our chance to do it right better
"Out of the tar pit"
"simple made easy"
https://github.com/bitemyapp/learnhaskell