Hacker News new | ask | show | jobs
by pufuwozu 5025 days ago
Thanks for the submission! The GitHub repository might be more interesting:

https://github.com/pufuwozu/bilby.js

The syntax examples show off a bit of everything:

Monads:

    λ.Do()(
        λ.some(1) >= function(x) {
            return x < 0 ? λ.none : λ.some(x + 2);
        }
    ).getOrElse(0) == 3;
Kleislis:

    λ.Do()(
        function(x) {
            return x < 0 ? λ.none : λ.some(x + 1);
        } >> function(x) {
            return x % 2 != 0 ? λ.none : λ.some(x + 1);
        }
    )(1).getOrElse(0) == 3;
Functors:

    λ.Do()(
        λ.some(1) < add(2)
    ).getOrElse(0) == 3;
Applicatives:

    λ.Do()(
        λ.some(add) * λ.some(1) * λ.some(2)
    ).getOrElse(0) == 3;
Semigroups:

    λ.Do()(
        λ.some(1) + λ.some(2)
    ).getOrElse(0) == 3;