RPNCalc V4 Public Testing

@ me (aidanprattewart@protonmail.com) if you have any errors, with console output please.

Example Programs:
(swap; a b -> a b) 1 2 swap N.B. args are in reverse order
1 + 2 (v partial -> 'v partial) Evaluate a partial

Docs

Lambda/Function Syntax

named function (added to scope, not applied): (swap; a b -> b a)
can be called later like: 1 2 swap
unnamed function, applied immediately: 1 2 3 (a b c -> a b c)
when lambdas return, they return entire stacks, which are sequentially applied back onto the stack

Partial Application

1 + will push a partially-applied function onto the stack
this could be called with: 1 + (partial -> 2 partial)

Pairs

pairs of 2 values can be created with pair
they can be deconstructed using fst or snd