Python 1.6 The balanced language

Tim Roberts timr at probo.com
Fri Sep 1 01:22:43 EDT 2000


ssthapa at harper.uchicago.edu (Suchandra Thapa) wrote:
>With python's lack of referential
>transparency, this will become a nightmare.  E.g.
>    def swap(x, y):
>	t = y[x - 1]
>	y[x - 1] = x
>	x = t
>	print x','y[x-1]
>
>    x = 3
>    y = [3, 2, 1]
>    swap(x, y)
>
>prints 3 , 3 which is probably not the programmer intended.

When I type this into Python 1.5.2, I get 1 , 3.  This is what I expected.
The outer value of x is not altered, although y is.  Is that what you're
referring to?

 >>> swap(x,y)
 1 , 3
 >>> x,y
 (3, [3, 2, 3])

--
- Tim Roberts, timr at probo.com
  Providenza & Boekelheide, Inc.



More information about the Python-list mailing list