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.

Reply via email to