-
-
Notifications
You must be signed in to change notification settings - Fork 9
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
Rethink macro terminology #134
Comments
"Reader tags" and "Hissp macros". Maybe "tags" and "macros" for short. Maybe "Lissp tags", except that sounds like "Lisp tags", which aren't really a thing. Names are hard. "Reader tags" might sound more like Clojure's "tagged literals", which are more similar than Common Lisp's "reader macros". |
Yes, add a note. The macro stuff is confusing if you're new to it. |
Paragraphs, man. Even if it's one per sentence. Or bullets or something. I'm getting lost in the wall of text. I'll try to address these issues in the tutorial, but not before the 0.3 release. The pieces of the language depend on each other, so it's hard to know what order to present them. I introduced the reader macros first because the compiler macro examples are using templates, which are made with the built-in reader macros To do it in the other order, I'd have to either split the exposition on the reader macros with just the template ones first, or explain the compiler macros without using templates at all. Maybe in readerless mode? I'd rather keep topics together as much as possible, but I did finally do a bit of topic splitting in the latest quickstart version. I can add a more explicit definition of qualifiers/qualification/qualified. I think calling the reader macros "tags" could reduce confusion, because you'd no longer be mixing up reader macros and compiler macros. |
I'm trying to remember where I heard the term "fully qualified name", so I can decide how to define it in the docs, but it seems to be a pretty standard programming term already: https://en.wikipedia.org/wiki/Fully_qualified_name, which does fit my usage. I'll go with that sense. |
"Reader macros" run in the Lissp reader, while "compiler macros" run in the Hissp compiler. Simple, right? Except both of these terms mean something completely different in Common Lisp, so using them might cause confusion.
Common Lisp's "reader macros" get the raw character stream, while Lissp's act during parsing (after lexing), which is more similar to Clojure's tagged literals.
Also, Common Lisp's "compiler macros" are not the same as Common Lisp's "macros". Hissp's "compiler macros" are much like Common Lisp's "macros".
But then what should we do instead? Simply make a note of this in the docs? Name them something else? What? Tags and macros? Parse-time macros and compile-time macros? Lissp macros and Hissp macros? Atom macros and AST macros? That one doesn't seem quite right.
The text was updated successfully, but these errors were encountered: