Egil Möller: > 2. Most consistent: Allow indentation on initial line (and consider that the indentation for that expression), as long all later lines have a further indentation OR are on the left edge (including a blank line ending in EOL or EOF, or a comment the left edge). >If I understand this correctly, it unfortunately breaks the following code: foo bar fie
; some comment muae naja hehe > The code is supposed to mean (foo bar fie muae (naja hehe))... Except for the blank line, this would work just fine. I had a separate proposed rule saying that "whitespace-only lines = line with no whitespace", I'll presume that's what you're commenting on. Yes, that's a downside of that proposal. On the other hand, your example might ALSO have the same interpretation - there's no way to tell the difference, because the difference is in the amount of whitespace on a line. I think that paying to attention to indentation on whitespace-only lines is a long series of hairy bugs waiting to happen. I don't think anyone wants to debug by checking WHITESPACE on blank lines. I sure don't, I make enough mistakes already :-). Besides, tools are generally unkind to whitespace-only lines. Some editors will helpfully remove them for you (!). In fact, your code as received by my emailer WOULD do the same thing. The code that my email system received did not have ANY whitespace on that middle line, so your code would ALSO silently have that effect. I think there's an easy workaround that makes this useable; if you want vertical space, just use a ";" character and nothing else. Like this: foo bar fie ; ; some comment muae naja hehe This has the advantage of being REALLY OBVIOUS that the indentation level has been retained (if they got there a different way, the reader can complain). Another option I didn't mention was to "ignore whitespace-only lines". That would work well in files, but it would HIDEOUS for interactive use. It'd mean that you would have to enter your NEXT command before reading (and execution) of the previous command, making it CERTAIN that your output will be out-of-sync. And I think it'd be a VERY bad idea for the syntax to vary between interactive and non-interactive use... it's confusing, and makes debugging rough. --- David A. Wheeler