Python complaints

Gareth McCaughan Gareth.McCaughan at pobox.com
Fri Nov 26 17:33:39 EST 1999


Michael Hudson wrote:

> This leads to a thought: would it be possible using lisp's silly
> amount of flexibility to get the reader to auto-paranthesize (word?
> doubt it):
> 
> defun our-member (obj lst)
>   if null lst
>      nil
>      if eql (car lst) obj
>         lst
>         our-member obj (car lst)
> 
> based on indentation, as
> 
> (defun our-member (obj lst)
>   (if (null lst)
>     nil
>     (if (eql (car lst) obj)
>       lst
>       (our-member obj (car lst)))))
> 
> or is whitespace ignorance built-in?

It's built in. It might conceivably be possible to hack the
reader to grok whitespace like this, but it would be rather
a pain. It would certainly be possible to write your own
reader (which would call the Lisp reader to do most of its
work) that understood whitespace.

I don't think it would be a good idea, though, any more
than it would be a good idea for Pythonistas moving from C
to pass all their code through a translator that turns
code with {...} into indented code. Or for C programmers
more used to Pascal-like languages to do
  #define BEGIN {
  #define END }
and the like. (I believe the source for the original Bourne
shell is full of that sort of abomination.) It's almost
certainly less effort to learn to live with a language's
syntax than to work around it, and it makes it much less
painful reading other people's code or showing them yours.

-- 
Gareth McCaughan  Gareth.McCaughan at pobox.com
sig under construction




More information about the Python-list mailing list