This is a functional programming sandbox for me to work through functional programming concepts using JavaScript and PureScript.
JavaScript is a functional language but I feel using JavaScript I will have more opportunities to use these concepts in day to day life. PureScript will give me more chances to use some techniques which maybe better expressed in Haskell while still being able to stay in the JavaScript ecosystem.
I’m using JSDocs so that I can better describe and document my code and better understand how to make my JavaScript code more type safe.
I will be rewriting utility function like those seen in lodash, underscore.js and rambda. I want to
- better understand how to use these functions
- know the function and tools available,
- techniques used
- know which functions are most common
Even though I’m using JavaScript, I’m starting from a first principle position because I hope to be able to recreate the techniques and libraries in any language I encounter.
For now having an understanding of composition is more important then performance. As I have a better grasp of composition I will optimize for performance. My focus is on fast prototyping through quick reasoning.
Website: https://lodash.com/ Github: https://github.com/lodash/lodash
Github: https://github.com/jashkenas/underscore Website: https://underscorejs.org/
Website: https://ramdajs.com/ Github: https://github.com/ramda/ramda
Github: https://github.com/FrontendMasters/hardcore-functional-architecture/tree/master
Website: https://jsdoc.app/
Gitbook: https://mostly-adequate.gitbook.io/mostly-adequate-guide/