[Tutor] beginning to code
Op 25-09-17 om 14:53 schreef Ned Batchelder:
> On 9/25/17 8:24 AM, Steve D'Aprano wrote:
>> On Mon, 25 Sep 2017 08:05 pm, Antoon Pardon wrote:
>>> Pass by reference doesn't imply being able to
>>> write a swap function.
>> Really. Do you have a counter-example?
>>> A swap function as possible in pascal requires two conditions.
>>> 1) Pass by reference
>>> 2) Copy-over assignment.
>> I don't know what you think "copy-over assignment" means, but none of
>> DuckDuckGo, Google, Bing or Yahoo finds that term except in your post.
> Would we be able to end these interminable debates if we just agree
> that we all know how it works, and it isn't important to come up with
> a simple name for what it is?
I'm not sure that Steve knows how it works. When he denies that the assignment is
an alias operation in Python that casts an important doubt.
> It seems clear to me that "value" and "reference" are wildly vague
> terms, used slightly differently by each language, and by different
> people even in the same language if they have different perspectives.
Well in that case and considering your remark above, maybe the residents
shouldn't be so eager to deny to newbees that python has call by reference.
IMO the problem people have with python isn't because they may think
python has call by reference but because they don't fully understand
how the assignment works.
The conclusion they jump to, that call by reference implies being able
to write a swap function, depends on the assignment semantics in a
language like Pascal.
Yet that it is the assignment semantics of python and not the argument
passing semantics that prohibit the writing of a swap function in Python
is rarely made clear.