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

Re: nested comments (please correct lexical scope)

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