David Schalk's repositories
fun-with-monads
First in the "Javascript Monads" series. The app is running online at http:/schalk.net:3055 .
monads-in-javascript
Practical Monads for Working Developers and Students
Useful-Recursive-Closures-in-JavaScript
Recursive functions returned by the simple M(x) function (no restrictions on what x can be) form closures with M that facilitate elegant function composition, sequestering state transformations inside the closure's scope, and more. A demonstration features a solitaire version of the simulated four-dice game of Score controlled inside the closure "m2 = M(x)", where x = [ [], [], [], [], [], [], [],[] ].
rc_monads
Encapsulation of dynamic state in recursive closures. M(x) returns a function that operates on functions that operate on x. rc_monads can be objects in categories if the functions on which they operate are morphisms in some category, such as addition in the category of positive integers.
blog
This is David Schalk's blog. It's coded in the wonderful Svelte framework.
JavaScript-Functions
This site showcases the power and potential usefulness of small closures that hold state (any JavaScript value), return functions that operate on functions that operate on state, and then return themselves, ready to operate on any remaining functions in front of them. These closures facilitate composition, encapsulation, and much more.
js-custom-operators
:v: Create your own operators in JavaScript
monads1
Small, unconstrained, untyped dynamic closures have boundless possibilities.
playground-2wruw1et
Tech.io playground
playground-ccqgaqn5
Tech.io playground
Recursive-JavaScript-Closures
Using recursive closures, a/k/a "monads", to (1) facilitate function composition; (2) insulate function composition; (3) extend the usefulness of Promises; {4) organize applications.
score2
A real time, multi-player game resting on wai-websockets.
xstream
An extremely intuitive, small, and fast functional reactive stream library for JavaScript