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: <>

* Peter Norvig <>
| But when I write code on paper, I often use a style like this to
| save time.

  Interesting (implicit) question.  When I worked with Ada some 15
  years ago, it was the first and so far the last language where my
  notes on paper were practically syntactically valid -- they had to
  be to be meaningful.  Some of the redundancy you find in most other
  languages can be ignored when writing on paper, in some almost all.
  (C has a _lot_ of redundancy, for instance, mostly because of its
  sorry excuse for an explicit static typing system.)

| Actually, there are other aspects of Lisp syntax that I find more
| annoying than the parens.  Compare
| 	s.X[i] = val
| to
| 	(setf (aref (csp-state-x s) i) val)

  Some of this may be handled by a specialized infix reader.  I prefer
  to bind "mathematical" syntax to $, so $ ... $ is a "mathematical"
  form.  (The choice of delimiter should be obvious, and if anything
  is obvious when it comes to special mathematical syntax, it's $.)

| And also because classes are namespaces in Python/C++, but not in
| Lisp (so I can use X instead of csp-state-x).

  Huh?  Of course you can use X.  Accessors are generic functions.

  I don't like the dot notation, as I already pronounce (x s) as "x of
  s", and that's as fitting for slot accessors as for function calls,
  which means that "s.x" gets the order wrong.  (I could pronounce it
  "s's x", mirroring the Norwegian pronounciation "s sin x", but that
  has always rubbed me the wrong way.)

$ (x s)[i] <- val $

  If the dot notation is important, it shouldn't be hard to add.

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