When trying to understand functional programming it's often easy to get lost in a world of mathematical terminology. This is an admittedly incomplete guide to some practical ways to work with functional programming in JavaScript
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Category theory concept explained: Kleisli category
1. – https://en.wikipedia.org/wiki/Kleisli_category
“In category theory, a Kleisli category is
a category naturally associated to any monad T. It is
equivalent to the category of free T-algebras. The Kleisli
category is one of two extremal solutions to the
question ‘Does every monad arise from an adjunction?’”
2. – https://en.wikipedia.org/wiki/Kleisli_category
“In category theory, a Kleisli category is
a category naturally associated to any monad T. It is
equivalent to the category of free T-algebras. The Kleisli
category is one of two extremal solutions to the
question ‘Does every monad arise from an adjunction?’”
9. -Crockford’s Law (aka The Monadic Curse)
“The Monadic Curse is that once
someone learns what Monads are
and how to use them, they lose
the ability to explain them to
other people”
12. –Edsger Dijkstra
“Program testing can be a very effective way to show
the presence of bugs, but is hopelessly inadequate for
showing their absence.”
13. –Simon Peyton Jones
“The most depressing thing about life as a programmer, I
think, is if you’re faced with a chunk of code that either
someone else wrote or, worse still, you wrote yourself
but no longer dare to modify. That’s depressing.”
29. Immutability goes hand in hand with purity. Returning
copies of data and not manipulating global state means
you can guarantee certain properties and rules will
always hold in your programs.
31. –Ellen Ullman
“We build our computer (systems) the way we build our
cities: over time, without a plan, on top of ruins.”
32. Imagine if you could just build your application by putting
together well tested, easily understood pieces of code in a
declarative manner. Just like building with lego blocks,
composition of pure functions unlocks this ability.
40. “Pointfree is a good litmus test for functional code as it lets us know we've got
small functions that take input to output. One can't compose a while loop, for
instance. Be warned, however, pointfree is a double-edged sword and can
sometimes obfuscate intention. Not all functional code is pointfree and that is
O.K. We'll shoot for it where we can and stick with normal functions otherwise.”
–Professor Frisby’s Mostly Adequate Guide To Functional Programming
48. Better known as….
Array (Functor)
Maybe (Monad)
Either (Monad)
Task/Future (Monad)
Reader (Monad)
State (Monad)
Product (Monoid)
Sum (Monoid)
First (Monoid)
Any (Monoid)
All (Monoid)
Max (Monoid)
Min (Monoid)
Etc.
49. While the mathematical descriptions and terminology
will ultimately prove useful, in many cases knowing
some basic laws is enough.
69. –Tom Cargill
“The first 90 percent of the code accounts for the first
90 percent of the development time. The remaining 10
percent of the code accounts for the other 90 percent
of the development time.”
70. Ian Thomas (@anatomic) | December 2017
Practical Functional
Programming In JavaScript
https://drboolean.gitbooks.io/mostly-adequate-guide/
https://github.com/getify/Functional-Light-JS
https://medium.com/@lunde.andrews/easing-into-functional-programming-in-javascript-30056bcc49a9
https://fp-bingotron.ian-thomas.net/
http://www.tomharding.me/
https://github.com/fantasyland/fantasy-land
https://staltz.com/is-your-javascript-function-actually-pure.html
https://egghead.io/courses/quickly-transform-data-with-transducers
https://egghead.io/courses/professor-frisby-introduces-composable-functional-javascript
https://www.youtube.com/watch?v=moAfgDFVLUs