Formal comment #10 (simplification) #; comments useless Reported by: Per Bothner Component: formalsyntax Version: 5.91 Having 3 different comment syntaxes (four, if you count #!) is overkill. #; adds no expressive power, and is dangerous, and should be removed. #; is always equivalent to #||#. It saves two characters, at the cost of making it harder to see where the comment ends. The expressed rationale is to make it easy to comment out sections of code - but it only makes sense to use it during development/debugging. In "production" code or anything else supposed to be maintainable you clearly should use #|...|# instead since it is much safer and clearer exactly what is commented out. And during development/debugging you can use an editor/IDE which can just as easily enclude code in #|...|# comments. Furthermore, #||# is strictly more powerful, since it can comment out not just a single but as many as you want. #; is the sort of "save two characters" "feature" which is not appropriate in a Scheme standard. RESPONSE: A majority of the editors remain convinced by the arguments in favor of `#;'. We do not agree with the claim that #; is more dangerous than other comment mechanisms, and the formal comment offers no evidence to this effect. We also do not agree that #; is less powerful; indeed, it automatically comments out a single datum, the basic unit of Scheme syntax, something that the other comment mechanisms cannot do. Furthermore, the claim in the formal comment notwithstanding, #|...|# cannot be used to comment out an arbitrary datum or set of datums; it works only when none of the datums include a string with an unmatched #| or |# character sequence. And, while #|...|# and ; can often be used, with care, to comment out a datum, only #; allows the programmer to clearly communicate that a single datum has been commented out, as opposed to a block or line of arbitrary text. Finally, while we agree that #; is most useful during development and debugging, we do not see this as a compelling argument for leaving #; out, particularly since programmers sometimes develop and debug a single piece of code concurrently on multiple systems.