On Thu, 02 Oct 2008 18:52:58 +1300, Lawrence D'Oliveiro wrote: > In message <[EMAIL PROTECTED]>, > Steven D'Aprano wrote: > >> On Wed, 01 Oct 2008 22:14:49 +1300, Lawrence D'Oliveiro wrote: >> >>> In message >>> <[EMAIL PROTECTED]>, >>> Aaron "Castironpi" Brady wrote: >>> >>>> Do you ever want to scream from the rooftops, "'append' operates by >>>> side-effect!"? >>> >>> No. It's an effect, not a side-effect. >> >> "Side-effect" has the technical meaning in functional languages of any >> change of state that isn't the creation and return of a function >> result. > > "Side" means that it happens as the by-product of returning a function > result.
Not in functional programming circles. This is what Paul Graham says about "side-effect" in Lisp: "A side-effect is some change to the state of the world that happens as a consequence of evaluating an expression." http://lib.store.yahoo.net/lib/paulgraham/acl2.txt It is common to refer to procedures (in languages which have them, like Pascal) as always operating by side-effect. I remember being taught that in Comp Sci classes in the mid 1980s. > "<list>.append" isn't a function, it's a procedure. Hence the > modification of the list is the primary effect, not a side effect. Python doesn't have procedures. list.append is a function, and it returns None. That's why hardly a week goes by without somebody failing to read the Fine Manual and being surprised why code like this doesn't work: alist = [1, 2, 3] alist = alist.append(4) print len(alist) -- Steven -- http://mail.python.org/mailman/listinfo/python-list