On Monday, September 4, 2017 at 3:35:54 PM UTC+5:30, Antoon Pardon wrote: > Op 04-09-17 om 00:44 schreef Dennis Lee Bieber: > > And is a limited theoretical study, heavy in mathematics and light in > > implementation. > > > > Programming Languages: Design and Implementation (Terrence W Pratt, > > 1975, Prentice-Hall) has a whole section (6-9 Subprograms with Parameters: > > Parameter Transmission Techniques)... > > > > """ > > Basic parameter Transmission Techniques > > > > Transmission by Value: ... the actual parameter is evaluated at the point > > of call. The /values/ of the actual parameter is then transmitted to the > > subprogram and becomes the initial value associated with the corresponding > > formal parameter. ... > > > > Transmission by Reference (Location or Simple Name): In transmission by > > reference a pointer is transmitted, usually a pointer to a data location > > containing the value. ... Any assignment to Y in SUB will change the value > > of X back in the calling program. > > IMO that depends on the semantics of the assignment statement. In an > environment > where an assignment copies the value into the object the variable points to, > this > is correct. However if assignment provides a new object that is now bound to > the > variable, it is incorrect. > > The diagram below tries to illustrate the two different assignment semantics: > > BEFORE > +-----+ +-----+ > | | | | > | 5 | | 7 | > | | | | > +-----+ +-----+ > > ^ ^ > | | > <x> <y> > > > x = y > AFTER > > C style | Python style > | > +-----+ +-----+ | +-----+ > | | | | | | | > | 7 | | 7 | | | 7 | > | | | | | ---> | | > +-----+ +-----+ | / +-----+ > / > ^ ^ / ^ > | | / | > <x> <y> <x> <y>
That's fine as far as it goes But then you have people (Steven above) who feel that python passing has no exceptions (in parameter passing) Does a poor job AFAIAC of explaining the difference between foo and bar in foll >>> def foo(x): x += 2 >>> def bar(x): x.append(2) >>> a=10 >>> b=[10] >>> foo(a) >>> a 10 >>> bar(b) >>> b [10, 2] >>> -- https://mail.python.org/mailman/listinfo/python-list