Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compose macro (^# tag) #211

Merged
merged 6 commits into from
May 24, 2023
Merged

Compose macro (^# tag) #211

merged 6 commits into from
May 24, 2023

Conversation

gilch
Copy link
Owner

@gilch gilch commented May 24, 2023

Highly experimental and subject to change. Not all of the #154 ideas have been implemented yet. This one corresponds to the Arc/Anarki ssyntax as mentioned in the wiki page. I designed it to be even more powerful, based on some experience with Hissp's spiritual predecessor Drython (and a few other languages). You can almost write straight-up Lissp inside a symbol, with enough escapes (which is mostly useless, but there if you need it). Unlike Arc, it's not built into the Lissp reader, but requires a reader tag. Its expansion is also a lot more complex and kind of opaque compared to Arc's. Some fairly complex functions can be implemented as terse one-liners. Implementation is the best name.

It's definitely one of the more complex macros bundled, but still implemented in about a page of Lissp, and suprisingly a lot of that is in a single boolean expression trying to decide if the thing we just read is callable. It's defined pretty late in the file and really leverages the other bundled macros.

@gilch gilch merged commit 6be47da into master May 24, 2023
3 checks passed
@gilch gilch deleted the compose-macro branch May 24, 2023 04:33
This was referenced May 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant