Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion The Next Generation of Lisp Programmers

From: zi...@netvision.net.il (Ziv Caspi)
Newsgroups: comp.lang.lisp
Subject: Re: The Next Generation of Lisp Programmers
Date: Mon, 26 Aug 2002 10:18:31 GMT
Message-ID: <3d69f031.166956420@newsvr>
References: <ca167c61.0208230344.35c5c2e1@posting.google.com> <3239282082503601@naggum.no> <ey3r8gmlvti.fsf@cley.com> <akb7t9$1grs3f$2@ID-125932.news.dfncis.de> <akbm2q$an6$1@newsmaster.cc.columbia.edu> <3239316488198320@naggum.no>
X-Newsreader: Forte Free Agent 1.21/32.243
NNTP-Posting-Host: 157.58.215.15
X-Original-NNTP-Posting-Host: 157.58.215.15
X-Trace: news.microsoft.com 1030353571 157.58.215.15 (26 Aug 2002 02:19:31 -0700)
Lines: 43
Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!feed.news.nacamar.de!newsfeed.freenet.de!news.stealth.net!news.stealth.net!msrtrans1!ns-galaxy!news.microsoft.com!not-for-mail

On 26 Aug 2002 02:08:08 +0000, Erik Naggum <e...@naggum.no> wrote:
[...]
>
>  If you /understand/ proper nesting, there is no problem.  If you do not want
>  to understand it further than you already have, that will be evidenced in
>  the choice of a verbose end-tag and tags that close at the wrong point as
>  seen by the user.  Whether you use \i{foo} or @i{foo} or <i foo> does not
>  matter much, but using <i>foo</i> is a major disaster as far as teaching the
>  users the value of structuring information is concerned.
>

And yet the question of proper nesting is different than the question
of redundant information in end-tags. XML has proper nesting,
redundant end-tags information, and I've yet to see an XML document
where the author got it wrong.

It is not obvious that use of \i{foo} (or {i foo}) is always better
than use of <i>foo</i>. In TeX and LaTeX, for example, once the scope
gets "too big", a switch is made to the \start{}...\stop{} way of
doing things. While redundant, it helps in catching the types of
mistakes people (as opposed to computers and geeks) tend to make.

You make some misleading remarks with your (+ 2 2) vs. 2 + 2 example.
(+ 2 2) can certainly appear in a scope that modifies it to mean any
number of things other than 4. The difference between LISP and
Algol-like languages (say, C) here is that in C it is usually quite
easy to determine where the enclosing context that might affect the
expression starts and stops (assuming this is not a string/remark/etc,
you can limit your reading to the area between the previous and next
semicolons, for example). This cannot be said about LISP.

Redundancy in visual appearence has been shown to help people identify
things quickly. This is why, for example, UPPERCASE is less easy to
read than lowercase (lowercase letters differentiate not only by form,
but also by whether they extend above and below the x-height region).
In a similar manner, usage of () for expressions, {} for compounds,
and semicolons to terminate statements helps people when reading code.
I was once in a project that took a LISP prototype and implemented it
in C for an embedded computer. Reading the LISP sources from printouts
was incredibly painful when compared with C, despite the fact that it
was shorter by a factor of three.