[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: nested comments (please correct lexical scope)

This page is part of the web mail archives of SRFI 62 from before July 7th, 2015. The new archives for SRFI 62 contain all messages, not just those from before July 7th, 2015.

Paul Schlie wrote:
>>> Personally I believe this is not a good idea, it's neither
>>> syntactically consistent with scheme, nor visually expected: more
>>> simply and consistently I would expect a #; comment to lexically
>>> remove the expression/token it's been lexically prepended to,
>>> nothing else. (including white-space). i.e.:
>>> ... (a #; b #;c) => (a b)

Bradd wrote:
>> Why? That's a token comment, not an s-expression comment, and it
>> seems to serve no useful purpose (unless you intend to support
>> token-pasting a la (a#; b) => (ab), which is IMO a very bad idea).

> Huh? arguably a# is a symbol, followed by a ; comment rest of line.

In your example above, it looked to me like you were using #; to remove
the whitespace token. Based on your later comments, I now see that
you're just talking about what it means to "prepend" a token -- i.e.,
that the sexp-comment is prepended to A in "#;a" but not in "#; a" where
whitespace separates the two tokens.

I see where you're coming from with that, but I disagree. I generally
don't think it's a good idea to differentiate syntax based on whitespace
like that.

>> I do agree that it'd be somewhat more intuitive if #; worked more
>> like QUOTE, with (#;#;foo bar) being equivalent to (#;(#;foo) bar)
>> rather than (#;foo #;bar). However, this idea of commenting tokens
>> instead of s-expressions seems like a very bad idea.

> Huh?

Sorry, I mashed three ideas together there:

1. I don't think it's a good idea for (#;#;a b c) => (c).
2. I would prefer (#;#;a b c) => (b c), analogous to (''a b c).
3. I don't like the suggestion that (#; a) => (a) because of the space.

To defend my #1: While I understand the "comment out next sexp"
explanation, my mind sees "A" as the next sexp for /both/ comment tokens
in (#;#;a b c), thus making it equivalent to (#;a b c) => (b c).
Bradd W. Szonye