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

Re: How many spaces a tab is worth




On Thursday, Dec 4, 2003, at 15:33 US/Eastern, RedHog (Egil Möller) wrote:

Dear Bear,

I won't comment much on your mail, as it seems to mostly be a troll.

It's not a troll.  It's a straight-out statement of the feelings of
_many_ Schemers on this matter.

This said, your comment on Schemes with this syntax enabled by default
needs a remark; the syntax is constructed in such a way as to be
backward compatible with the normal S-expression-based syntax -
I-expressions could be enabled by deffault without breaking any but a
very small set of old code.

Specifically, the only code that would break, would be code that had
two consecutive topplevel expressions, with the second line indented
more, as in

(define foo bar)

   (define fie naja)

To code like that clearly is not very usefull, and so isn't found in
many progams (most progams I've seen have had all topplevel
expressions non-indented).

What about files where the whole file is wrapped in some form, but
nothing has extra indentation?  This is found in a _lot_ of libraries
for PLT, for instance:

(module foo mzscheme
  (require bar)
  (provide baz)

;; The top-level forms in the module body have no indentation.
(define (mumble frotz) (garglemumph quux))
(define (baz ...) ...)
...

)

a) REQUIRE and PROVIDE have different indentations than DEFINE (this
   might not be as common).
b) The DEFINEs have the _same_ amount of indentation as MODULE (none),
   but they're _subforms_.
c) How do you tell where the close-paren is supposed to be?