John Thingstad wrote: > On Wed, 13 Dec 2006 01:54:58 +0100, Paddy <[EMAIL PROTECTED]> wrote: > > > > > Robert Uhl wrote: > > > >> Steven D'Aprano <[EMAIL PROTECTED]> 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 Python, most containers are directly iterable so we are much more > > likely to arrange our program to use: > > for a in y: > > dosomethingwith(a) > > > > -Paddy. > > > > In lisp: (loop for a in y do (do-something a)) > > There is one difference.. There is no iterator so you have different > pronouns for each sequence type: > > list: (loop for a in y .. > array: (loop for a across y .. > hash: (loop for a over y .. > > hardly ideal, but workable. > > Still it is a lot simpler to change the declaration in the start of the > loop > than having to changing the access to all references to a variable as you > might have to I can't quite figure out the meaning of your sentence above.
> with recursion. Consider > > (defun func-iter (list) > (func (first list))) > (when (not (endp list)) > (func-iter (rest list))) > > (You could write (mapc #'(lambda (e) (func e)) list) but that is beside > the point.) > > or something like that. What happens if you change the type to a array? > Total rewrite.. Not even close. In my example above: for a in y: dosomethingwith(a) y could be a lot of built-in types such as an array, list, tuple, dict, file, or set. - Paddy. -- http://mail.python.org/mailman/listinfo/python-list