JohanWiltink
JohanWiltink
overwritten \* in the current scope disabling overwriting need not disable shadowing, so tagging binding names would do. we already have hierarchical scopes. this would need a syntax extension -...
You'd be defining `True, False, not, and, or` and possibly `xor, implies` ( with those, you'd have covered all possible cases up to `not, flip` ). All of those are...
`BigInt` should probably be used externally as well. It's not possible to mix the two in JS, and (1) they're gonna leak and (2) you need them to support possible...
It might be possible to have not only `toInt` and `fromInt` but `toBigInt` and `fromBigInt` as well in a custom `numEncoding`, use `Number` internally for now and `BigInt` later, and...
Probably granular. I see no reason to ever forbid `#constant` ( though for consistency it should, again probably, be possible ), but allowing solvers to `#import church-numbers.lc` in a kata...
in no particular order: `#import filename.lc` - import external code ( may need facility for specific imports renaming or namespacing ) `#export binding-name` - export a subset of defined bindings...
magic functions is another alternative, but they're considered magic for a reason. threading `stdin / stdout / stderr` might allow for redirection at JS / OS level.
* combinators * datatypes: unit, booleans, ordering, lists, n-tuples ( probably in various encodings ) with various helpers * instances for standard number encodings: Enum ( `succ, pred` ), Ord...
Showcasing stuff in example kata is enough for now. copy-paste works just fine for a lot of folks. Also, without namespacing or renaming imports, resolving name clashes can only be...
In heavily recursive scenarios, `env` as `Function` might leave a long tail of shadowed bindings that can not be garbage-collected, where `env` as `Map` keeps the current size down to...