Subject: Re: RFC: Lisp/Scheme with less parentheses through Python-like significant  indentation?
From: Erik Naggum <>
Date: 2000/08/10
Newsgroups: comp.lang.lisp
Message-ID: <>

* Erik Naggum
| I think "down" and "up" are equally useful/likely "buttons".  I use
| Emacs with these operations all the time, in fact.  Very seldom do I
| type invididual parentheses.

* Craig Brozefsky
| How do you avoid that?  

  M-( inserts () and leaves point between them.  M-) leaves point
  after the closing paren.  (A numeric argument, n, to M-( wraps the
  next n s-exprs in parens.)  I have written similar functions for []
  and {}, as well as "" and **.  This means I don't generally have
  unmatched paired delimiters in my code.  (This is a simplification
  of the SGML code I wrote years ago to start with <></> and let each
  character (up to the first whitespace) in the start-tag also insert
  in the end-tag.)

* Erik Naggum
| Oh, right, you're thinking in Scheme, which _is_ a language that
| breaks this important property of Lisp, and has a character-level
| syntax, like Algol.

* Craig Brozefsky
| I understand this difference, but I'm unable to see the
| repurcussions it has.

  Look at Dylan.  It had a Lisp-like syntax at first, then lost it
  because of the syntactic changes in the "other" syntax.  If you
  don't constantly think in terms of LL(1) grammars and readers that
  return objects, someone will begin to think in other terms and win
  popularity because people generally just accept visible concepts,
  but don't think about them if they aren't immediately visible.

  So even if the significant-whitespace proposal is OK now, _because_
  of the explicit list structure, some next step will lose the list
  structure because someone will make another "innovation" that leaves
  that heritage behind.

| In R5RS any Expression will also parse as Datum (what read
| understands).

  In scheme, (if 1 2 3) and (if 1 2 . (3)) are identical as data, but
  as code, they are different.  [I think this is completely idiotic.]

  If this is not what you expected, please alter your expectations.