merits of Lisp vs Python

Robert Uhl eadmund42 at NOSPAMgmail.com
Tue Dec 12 11:53:04 EST 2006


Steven D'Aprano <steve at REMOVE.THIS.cybersource.com.au> writes:
>
> Speaking as somebody who programmed in FORTH for a while, that doesn't
> impress me much. Prefix/postfix notation is, generally speaking, more
> of a pain in the rear end than it is worth, even if it saves you a
> tiny bit of thought when pasting code.

Of course, you use prefix notation all the time in Python:

  for x in range(0,len(y)):
    dosomething(x)

In the example, 'for,' 'range,' 'len' and 'dosomething' all use
prefix notation.  In Lisp the example might look like this, assuming the
proper functions and macros to make it work:

  (for ((x (range 0 (length y))))
     (dosomething x))

Slightly more idiomatic would be:

  (loop for x in (range 0 (length y))
        do (dosomething x))

Even more idiomatic would be:

  (loop for x below (length y)
        do (dosomething x))

Which doesn't seem particularly more or less prefixy or infixy than the
Python version.

Infix is really only used in arithmetic--and there are Lisp macros which
give one infix notation if wanted, so one could write:

  (infix 1 + x / 4)

-- 
Robert Uhl <http://public.xdi.org/=ruhl>
Give a man a fish and you feed him for a day; give him a freshly-charged
Electric Eel and chances are he won't bother you for anything ever again.
                                                --Tanuki the Raccoon-dog



More information about the Python-list mailing list