You can tell from my DEV posts that I've chosen a functional (declarative) approach to coding, in contrast to a procedural, object oriented etc. philosophy. I can't claim to be a purist or more than scratching the surface (Ramda yes, FantasyLand not yet...).
A functional approach also enables a powerful paradigm, which focusses on data rather than app constructs. This means that user data, app data and app state (e.g. button status) are all defined as data structures to be transformed by functions. This approach may or may not be in contrast to common architectures enabled by React, Vue etc. using state and props.
In either case, my approach, React and Vue have a common feature - the virtual DOM (see later content).
There are many articles and books explaining functional programming and why it's useful (and interesting!). I would say that my approach to FP as practiced in this repository can be considered 'level 1' FP, whilst 'level 2' FP uses more advanced concepts. Here are some materials:
FP 'level 1' includes immutability, pure functions, map, reduce and related concepts:
A game, perhaps a more interesting way to see example code https://cheesecakelabs.com/blog/functional-programming-game-js/
How FP functions might work https://medium.com/dailyjs/functional-js-with-es6-recursive-patterns-b7d0813ef9e3
A great book to start with https://github.com/getify/Functional-Light-JS
A slightly more advanced book https://github.com/MostlyAdequate/mostly-adequate-guide
FP 'level 2' includes algebraic structures, fantasy land and related concepts:
Fantasy land specification https://github.com/fantasyland/fantasy-land