> > <SNIP> > > Where I come from, the output of a function is determined by the input > > to the function. > > Well, actually, your being upset at that is the exact point of > functional programming languages: in functional programming, the output > of a function is determined by its input, and *only* its input. > Therefore, there are no side-effects (variables being one) calling a > function twice with the same arguments will *always* yield the same > result. > > The only time this paradigm is broken is (of course) when dealing > with I/O.
Hi Max, Just as an off-topic tangent: the "of course" part might need qualification. *grin* Haskell, one of the main representatives of the functional programming languages, uses the concept of "monads" to handle I/O. Philip Wadler has a whole page dedicated to monads: http://homepages.inf.ed.ac.uk/wadler/topics/monads.html where I/O fits in cleanly with the functional programming paradigm. There appears to be a monad tutorial page here: http://www.nomaware.com/monads/html/ Best of wishes! _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor