Arc Forumnew | comments | leaders | submitlogin
1 point by drcode 6033 days ago | link | parent

It's an interesting idea, but unfortunately I can't really say that I'm feeling it (now mind you, I've made plenty of suggestions on this forum for ideas that were far worse than this one :-)

Here's the main issues I have with it:

1. Breaks the symmetry of declaration vs. use of parameters- If you're using a variable you should see it declared somewhere. It is true that anaphoric macros like 'aif break this rule, but the payoff with these macros is really high because they allow you avoid an entire 'let form. This makes them worth having, anyway.

2. The token count in the body of the macro doesn't change appreciably- Yes, you do have one less 'unquote-splice reference, but that is a pretty small gain.

3. The rule for macros used to be "if you see a comma, data is being spliced in". The comma used to divide the syntactic from the metasyntactic content- This now breaks that rule.

4. The Ampersand is a potentially extremely valuable symbol character that could now no longer be used for other purposes as the language evolves.

5. In a way, the body parameter is still there, it is just hidden inside of the word 'bod. If the 'bod macro offered some deeper insight into macro creation this wouldn't be the case- However, since there's a one-to-one correspondence between the 'bod macro and the 'body parameter, this macro is really just a way to move the 'body parameter definition to a different place in the function syntax. (That's why, for instance, I like the fact that arc doens't bother with a '1+ function)