Why did the designers of the Rust programming language require that macro names have to end with an exclamation point?
I observe that both Common Lisp and Emacs Lisp language variants do not appear, at least to this language abuser, to require a special suffix on the names of non-hygienic macros (e.g.,
defmacro). Those languages do not, at least to this malpracticing developer, appear to exhibit technical problems in their approach to macro usage, that would require any punctuation suffix. This exclamation point would appear to my eye to separate function calls from a macro calls, causing them to appear to be treated and resolved into distinct, separate "conceptual spaces", "namespaces", or similar notion. So, that consideration is what drives my curiosity to ask this question here.
I am not stating that this design choice is/was incorrect/wrong. Nor am I suggesting it should be changed, or even could be changed. I am just curious.
See the StackOverflow question for my semi-failed attempt at getting an answer from what I would presume are Rust users.
That attempt partially failed because all comments and the answer there (as of 2023-10-28; more answers may appear over time) appear to be guesswork or speculation, but one comment pointed at this site. I'm hoping someone can point us to the answer to some definitive reference provided by the originators/authors/designers of the Rust language to answer this question.