Without the macro, the last line would have been
(some-func ((parameter-1) some-arg)
The question comes when you would have used (parameter-1) in a higher-order
context. Do you want it to be equivalent to (parameter-1), or equivalent to
(lambda (arg ...) ((parameter-1) arg ...)) ?
In your source program the first way would mean that parameter-1 and (lambda
(arg ...) (parameter-1 arg ...)) would be different. But the second way they
would be the same, because they would both be lambdas that would use the value
from when it was called instead of when it was created.
If you know that the parameter is never modified within other than through that
single parameterize, and if you can be absolutely sure that the value of this
never escapes the context of that single parameterize through anything else,
then there won't be any observable difference. However if it does escape
somehow, you need to figure out what that should mean.
Agreed; if the parameters were potentially modifiable, I would have thought
twice before de-parenthesizing them.
Best regards,
Dmitry
--
You received this message because you are subscribed to the Google Groups "Racket
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.