wonderlang

1.27.0 • Public • Published

wonder

NPM

NPM

Are you a functional programming elitist? Are you a lazy coder? Do you just wish there was a wonderful programming language? If so, then Wonder is for you.

Wonder is a general-purpose functional programming language influenced by countless other programming languages, especially Haskell, Lisp, and Javascript. Although meant to be a practical language, Wonder can become quite obfuscated at times.

For installation/docs, visit the wiki.

Features

  • Mostly functional, with some imperative/object-oriented structures
  • Lazily evaluated
  • Fresh syntax design
  • Dynamically and weakly typed
  • Implements a zero-indexed version of de Bruijn indices
  • Code as data
  • Pattern matching support
  • Polish notation
  • Arbitrary decimal precision support (note that trig functions are limited to 1000 digits of precision)
  • Simple package system
  • Easy installation via Node.js and NPM

Examples

"Hello, world!":

"Hello, world!"

Recursive Fibonacci sequence:

f\ 0\\0;
f\ 1\\1;
f\\\ x\\(+ f - #x 1) f - #x 2;
f 10 #. Usage example

Recursive Fibonacci sequence with memoization:

f\ 0\\0;
f\ 1\\1;
f\\\ x\\(
  f\#x\\#y;
  #y
) y\ (+ f - #x 1) f - #x 2;
oN map #f rng 1 50

Alternative Fibonacci sequence:

oN tk 100 (genc round . * #phi) 1

FizzBuzz:

oN 
  (map x\\(
    and % #x 3 % #x 5
      ? #x
      ? ++ (% #x 3 ? "" ? "fizz") (% #x 5 ? "" ? "buzz")
  )) rng 1 101

Quine (run with --noexpr flag):

f\ @ol ["f\ ";f;";f0"];f0

∞ x ∞ Matrix:

os rpt oo rpt oo 1

Truth Machine (enter nothing for falsy and anything for truthy):

t\ 0\\@ol 0;
t\ 1\\@t ol 1;
a\ rl ();
t get 0 a

You can find some PPCG.SE Wonder submissions here.

Readme

Keywords

none

Package Sidebar

Install

npm i wonderlang

Weekly Downloads

79

Version

1.27.0

License

MIT

Unpacked Size

164 kB

Total Files

13

Last publish

Collaborators

  • molarmanful