2 ms·
I guess I wanted macros and pattern matching without Lisp syntax, and I wanted to retain and use the JS/node ecosystem. There's also a few language features I
by breuleux 11y ago
I guess I wanted macros and pattern matching without Lisp syntax, and I wanted to retain and use the JS/node ecosystem.
There's also a few language features I couldn't find anywhere else that I wanted to try out (my % operator, ad hoc exception classes, some pattern matching features like coercion and "match" inside a pattern to define sub-patterns, the each operator, some features of the macro system that I have yet to document, etc.)
It's kind of fun, really.
- visarga 11y agoWhat does the % operator formally do? All I could find in the documentation was : > Earl Grey's % operator can be used to easily build HTML, DOM, virtual DOM, and other things:
- breuleux 11y agoThere are examples below that statement for common usage, but if you want a deeper understanding: tag.xyz % property = value child1 child2 Will produce the data structure: {tags = {"tag", ".xyz"} props = {property = value} children = {child1, child2}} as an instance of the ENode class. Then, transformer functions can process the data structure to generate HTML or other things, e.g. require: /html html(thing) ==> <tag class="xyz" property="value">child1child2</tag>