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

Re: sweet-expressions are not homoiconic

Hash: SHA1

        John Cowan writes:

 > John David Stone scripsit:
 > > From the beginning, there was an obvious impediment to the use of
 > > sweet-expressions:  Readers who are accustomed to alphabetic writing
 > > systems in which whitespace is almost invariably used as a word
 > > separator, a paragraph separator, a decorative typographical element,
 > > or for page layout simply don't respond psychologically to whitespace
 > > characters as they do to visible characters such as parentheses.
 > Ifthatwerereallytruewedstillallbewritinginscriptiocontin
 > ualikethiswherelinesarebrokenanywhereatall.

        Well, it did take a considerable time (measured in generations) for
the use of whitespace as a word separator to become standard.  But there
was an obvious motivating advantage in that case: separated-word texts are
significantly less ambiguous.  No such advantage accrues to

 > > Whitespace characters don't look like grouping symbols, as
 > > parentheses, brackets, braces, or oriented quotation marks do, because
 > > they don't have appropriate shapes and don't come in pairs.  Moreover,
 > > they don't visibly nest, so it is unnatural to use them to represent
 > > recursively defined syntactic structures.
 > Au contraire.  It is so natural than even suits use nested indentation
 > to show hierarchy in their PowerPoints.

        Yes, and we see how well that works out when the hierarchies are as
deeply nested as those in LISP-like languages are.

        The other common case of the use of indentation to indicate
grouping is legislative bills, which I would hesitate to cite as exemplars
of readability and homoiconicity.

        It's not a persuasive argument to say that Scheme programs could be
made just as readable as Congressional legislation and the wordier kinds of
PowerPoint slides.

Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.9 <http://mailcrypt.sourceforge.net/>