alma
alma copied to clipboard
ALgoloid with MAcros -- a language with Algol-family syntax where macros take center stage
This file is a contrived example, meant to highlight the fact that, even though eight lines of code are printed, only four macro calls are made. I have no idea...
Something like `H(50)` could be either a `prefix:` applied to a `50` (with superstitious parentheses), or a function call to a function `H` with one argument `50`. We kind of...
We're talking about this situation, as seen in #214: quasi { {{{it}}} = {{{it}}} * 2; } The same comment in that issue also coins the *Single Evaluation Rule*: if...
Very belatedly, I now think that `get`, `set`, and `has` should maybe all live on `Object` `Dict` instead, as static methods. The hand-wavy reason is that they are "infrastructure" (with...
Currently, `examples/swap.007` is implemented like this: ``` macro swap(a, b) { return quasi { my t = {{{a}}}; {{{a}}} = {{{b}}}; {{{b}}} = t; }; } ``` That's insufficient, because...
In a module, of course. :wink: (Added to #401.) ``` import syntax.stmt.goto; RETRY: my name = prompt("Enter your name: "); if !isValid(name) { goto RETRY; } ``` The extent of...
TravisCI is no longer freely (as-in-beer) available. Let's switch this project to GitHub actions, as we've done with [many](https://github.com/masak/bel/pull/279) [others](https://github.com/masak/taocp/pull/41).
One can try Raku online by just clicking [a link](https://tio.run/##K0gtyjH7/784sVJBySM1JydfRyE8vygnRVHJ@v9/AA). My suggestion is to make the same be true for alma. The point of doing so would be to bring...
Coming back to `format.007`, there's a heck of a lot of boilerplate in there that could be folded back into the language. ``` return quasi { replaceAll({{{fmt}}}, "", sub transform(arg)...