Immutability and Python
rosuav at gmail.com
Mon Oct 29 17:08:31 CET 2012
On Tue, Oct 30, 2012 at 2:55 AM, Paul Rubin <no.email at nospam.invalid> wrote:
> andrea crotti <andrea.crotti.0 at gmail.com> writes:
>> and we want to change its state incrementing the number ...
>> the immutability purists would instead suggest to do this:
>> def increment(self):
>> return NumWrapper(self.number + 1)
> Immutability purists would say that numbers don't have "state" and if
> you're trying to change a number's state by incrementing it, that's not
> immutability. You end up with a rather different programming style than
> imperative programming, for example using tail recursion (maybe wrapped
> in an itertools-like higher-order function) instead of indexed loops to
> iterate over a structure.
In that case, rename increment to next_integer and TYAOOYDAO. 
You're not changing the state of this number, you're locating the
number which has a particular relationship to this one (in the same
way that GUI systems generally let you locate the next and previous
siblings of any given object).
 "there you are, out of your difficulty at once" - cf WS Gilbert's "Iolanthe"
More information about the Python-list