Thank you for your thoughts on this!

On 2006-11-28, Nikodemus Siivola
<[EMAIL PROTECTED]> wrote:
> Larry Clapp <[EMAIL PROTECTED]> writes:
>
>> *** I have this cool idea for a new Lisp dialect / Lisp syntax that
>> doesn't involve so many parentheses!  It uses indentation to show
>> structure!
>>
>> Since the advent of Python, this comes up on c.l.l. with some
>> regularity.  We've had "sweet-expressions" and "indented Lisp" and
>> probably others.
>>
>> Realize a few things:
>>
>>   @ You should use an editor that makes writing Lisp easier, like
>>   Emacs or Vim.  Both of these can indent based on parenthesis
>>   nesting, highlight matching parentheses, cut and paste entire blocks
>>   of code based on the parentheses, and so on.  If your editor can't
>>   do all that, get a new editor.
>>
>>   @ Lispers already read code based on indentation, but their editors
>>   indent and re-indent code automatically.  \i{Removing} the
>>   parentheses makes that \i{harder}.
>>
>>   @ After you've written and read enough Lisp, you stop seeing the
>>   parentheses.  (Reports, from actual newbies who've experienced it,
>>   vary from a few days to a few weeks.)  They don't \i{disappear} in
>>   some magical way, but you start to see the structure of the code
>>   rather than just "lots of fingernail clippings".
>
> I think the above is sufficient, and the rest is superfluous.
>
>>
>>   @ Parentheses are an accident of history.  Any other matching
>>   delimiter would work just as well.

On further thought I could see that about this one.

>>   @ Parentheses are an accident of syntax.  They show block structure,
>>   nothing more.  You can view (a b c) as "(a b c)" or as
>>
>>                   +------+   +------+   +---------+
>>                   | a | ---> | b | ---> | c | nil |
>>                   +------+   +------+   +---------+
>>
>>   Adding or removing parentheses -- or adding indentation -- to the
>>   blocks-and-arrows notation makes no sense.  To a Lisper that has
>>   learned to recognize the () notation \i{as} the blocks-and-arrows
>>   structure, it makes just as little sense.

I think this point expands on point 3.  Perhaps I could combine and
shorten them?

>>   @ Almost regardless of the actual merit (\i{*cough*} if any
>>   \i{*cough*}) of your idea, most c.l.l.'ers (and probably other
>>   Lispers, too) will greet your idea with derision and mockery.

I think this is worth pointing out to the newbie.  Maybe could
rephrase as

    Given all the above, if you go ahead and build or use an
    indentation-based Lisp ("IBL"), be prepared to abandon it after
    you get sufficiently into Lisp.  And if you post about your IBL to
    c.l.l., be prepared for a less-than-welcoming response.  (We'd
    love to hear about an IBL-er abandoning it for parentheses,
    though.  This would provide empirical evidence to which we could
    direct later newbies.)

-- Larry


_______________________________________________
cl-faq mailing list
cl-faq@lispniks.com
http://www.lispniks.com/mailman/listinfo/cl-faq

Reply via email to