Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #67872

Re: Reference

From Marko Rauhamaa <marko@pacujo.net>
Newsgroups comp.lang.python
Subject Re: Reference
Date 2014-03-05 22:23 +0200
Organization A noiseless patient Spider
Message-ID <87r46g75t9.fsf@elektro.pacujo.net> (permalink)
References (10 earlier) <roy-A9E76C.21091704032014@news.panix.com> <164d209c-ba5e-449f-bc25-c27ebfb1fc0f@googlegroups.com> <5316b0dc$0$2923$c3e8da3$76491128@news.astraweb.com> <55d6a455-1856-4fd6-ac4b-c277ff7e2bd1@googlegroups.com> <53176aac$0$29985$c3e8da3$5496439d@news.astraweb.com>

Show all headers | View raw


Steven D'Aprano <steve+comp.lang.python@pearwood.info>:

> There is no metaphysical implication from Python's "is" operator. If the 
> operator had precisely the same behaviour, but was called "same", as in:
>
> a same b
> => returns True if a and b are the same object
> => returns False if a and b are not the same object
>
> would you claim there was a metaphysical implication?

I would. You are not defining anything because you are not explaining
what "same object" means.

Set theory obeys the so-called extensionality principle: if two objects
are indistinguishable in every way, they are one and the same object.
Fermions in particle physics are the same way: if two fermions' quantum
states coincide, they are one and the same particle.

Now, that's not true for Pythons "bosonic" objects. You can have two
objects that are identical except they are not the same.

There are (at least) two ways to break the circularity between "is" and
"same-objectness:"

  1. Give a real or hypothetical reference implementation and state that
     any other implementation that produces same (or similar enough)
     outcomes is valid. ("Each object is allocated with the malloc(3)
     function call. The identity of an object is the value returned by
     malloc(3).")

  2. Give formal axioms that characterize any valid implementation.
     ("After x = y, x is y" plus a couple of dozen more formal
     stipulations.)


As for teaching the concept in practice, both of the above approaches
are probably bad. Take abstract algebra. You don't start teaching a
first-grader about groups and rings and work your way down to
arithmetics. Rather, you start with counting, move on to arithmetics,
bring in vectors and maybe Rubik's Cube and finally try to get the
students to understand the general, abstract idea behind it all.

Analogously, it may be necessary to teach the "children" first the
theory of linear memory, then variables and arrays, then pointers and
singly-linked lists. Once these concrete ideas have been understood, the
principles behind Python and other higher-level programming languages
can be learned.

> How about if it were called "eq", like Lisp uses?

You are correct. Lisp suffers from the same problem. The underlying
reference machine is simpler to present, though, as there are no classes
or methods. There are only memory cells and a handful of data types
(number, cons, symbol, string or nil). You really get a feel of a
physical steam engine.

Ten years ago a whole generation of programmers was raised who knew
nothing of computing except Java. I wonder how difficult it was for them
to get objects, references and identity.


Marko

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Reference "ast" <nomail@invalid.com> - 2014-03-03 10:42 +0100
  Object identity (was: Reference) Ben Finney <ben+python@benfinney.id.au> - 2014-03-03 21:00 +1100
    Re: Object identity (was: Reference) "ast" <nomail@invalid.com> - 2014-03-03 11:21 +0100
  Re: Reference "Mark H. Harris" <harrismh777@gmail.com> - 2014-03-03 05:09 -0800
  Re: Reference Grant Edwards <invalid@invalid.invalid> - 2014-03-03 14:29 +0000
  Re: Reference Rustom Mody <rustompmody@gmail.com> - 2014-03-03 07:52 -0800
    Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-04 08:10 +1100
    Re: Reference Tim Chase <python.list@tim.thechases.com> - 2014-03-03 15:24 -0600
    Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-04 08:31 +1100
    Re: Reference Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-03-03 21:35 +0000
      Re: Reference Marko Rauhamaa <marko@pacujo.net> - 2014-03-04 00:07 +0200
        Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-04 09:18 +1100
          Re: Reference Alister <alister.ware@ntlworld.com> - 2014-03-04 11:10 +0000
            Re: Reference Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-03-04 11:48 +0000
              Re: Reference "Rhodri James" <rhodri@wildebst.org.uk> - 2014-03-05 00:25 +0000
    Re: Reference Tim Chase <python.list@tim.thechases.com> - 2014-03-03 15:51 -0600
    Re: Reference Jerry Hill <malaclypse2@gmail.com> - 2014-03-03 17:02 -0500
      Re: Reference Marko Rauhamaa <marko@pacujo.net> - 2014-03-04 00:22 +0200
        Re: Reference Chris Angelico <rosuav@gmail.com> - 2014-03-04 09:27 +1100
        Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-04 09:33 +1100
        Re: Reference Steven D'Aprano <steve@pearwood.info> - 2014-03-04 04:52 +0000
          Re: Reference Chris Angelico <rosuav@gmail.com> - 2014-03-04 16:24 +1100
            Re: Reference "Rhodri James" <rhodri@wildebst.org.uk> - 2014-03-05 01:08 +0000
              Re: Reference Roy Smith <roy@panix.com> - 2014-03-04 21:09 -0500
                Re: Reference Rustom Mody <rustompmody@gmail.com> - 2014-03-04 19:36 -0800
                Re: Reference Ian Kelly <ian.g.kelly@gmail.com> - 2014-03-04 21:08 -0700
                Re: Reference Rustom Mody <rustompmody@gmail.com> - 2014-03-04 20:31 -0800
                Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-05 15:32 +1100
                Re: Reference Rustom Mody <rustompmody@gmail.com> - 2014-03-04 20:47 -0800
                Re: Reference Steven D'Aprano <steve@pearwood.info> - 2014-03-05 05:06 +0000
                Re: Reference Rustom Mody <rustompmody@gmail.com> - 2014-03-04 21:47 -0800
                Re: Reference alex23 <wuwei23@gmail.com> - 2014-03-05 16:01 +1000
                Re: Reference Rustom Mody <rustompmody@gmail.com> - 2014-03-04 22:10 -0800
                Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-05 17:22 +1100
                Re: Reference alex23 <wuwei23@gmail.com> - 2014-03-05 16:28 +1000
                Re: Reference Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-03-05 12:24 +0000
                Re: Reference Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-03-05 12:21 +0000
                Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-05 17:20 +1100
                Re: Reference Rustom Mody <rustompmody@gmail.com> - 2014-03-05 09:40 -0800
                Re: Reference Tim Chase <python.list@tim.thechases.com> - 2014-03-05 12:12 -0600
                Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-06 05:33 +1100
                Re: Reference Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-03-05 18:19 +0000
                Re: Reference Marko Rauhamaa <marko@pacujo.net> - 2014-03-05 22:23 +0200
                Re: Reference Grant Edwards <invalid@invalid.invalid> - 2014-03-05 20:31 +0000
                Re: Reference Marko Rauhamaa <marko@pacujo.net> - 2014-03-05 22:46 +0200
                Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-06 08:07 +1100
                Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-06 08:10 +1100
                Re: Reference Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-03-05 21:34 +0000
                Re: Reference Terry Reedy <tjreedy@udel.edu> - 2014-03-05 18:00 -0500
                Re: Reference Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-03-06 03:01 +0000
                Re: Reference Rustom Mody <rustompmody@gmail.com> - 2014-03-04 22:03 -0800
                Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-05 17:26 +1100
                Re: Reference Chris Angelico <rosuav@gmail.com> - 2014-03-05 17:32 +1100
                Re: Reference Tim Chase <python.list@tim.thechases.com> - 2014-03-05 08:24 -0600
                Re: Reference Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-03-05 18:29 +0000
                Re: Reference Marko Rauhamaa <marko@pacujo.net> - 2014-03-05 22:34 +0200
                Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-06 08:01 +1100
                Re: Reference Marko Rauhamaa <marko@pacujo.net> - 2014-03-05 23:14 +0200
                Re: Reference Chris Angelico <rosuav@gmail.com> - 2014-03-06 08:26 +1100
                Re: Reference Marko Rauhamaa <marko@pacujo.net> - 2014-03-05 23:50 +0200
                Re: Reference Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-03-06 00:35 +0000
                Re: Reference Chris Angelico <rosuav@gmail.com> - 2014-03-06 11:50 +1100
                Re: Reference Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-03-06 17:46 +0000
                Re: Reference Tim Chase <python.list@tim.thechases.com> - 2014-03-05 15:33 -0600
                Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-06 08:37 +1100
                Re: Reference Marko Rauhamaa <marko@pacujo.net> - 2014-03-06 02:52 +0200
                Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-06 12:05 +1100
                Re: Reference alex23 <wuwei23@gmail.com> - 2014-03-06 12:12 +1000
                Re: Reference Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-03-05 21:46 +0000
                Re: Reference Marko Rauhamaa <marko@pacujo.net> - 2014-03-05 08:23 +0200
                Re: Reference Rustom Mody <rustompmody@gmail.com> - 2014-03-04 22:33 -0800
                Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-05 17:40 +1100
                Re: Reference Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-03-05 12:35 +0000
                Re: Reference Chris Angelico <rosuav@gmail.com> - 2014-03-05 23:45 +1100
          Re: Reference Jerry Hill <malaclypse2@gmail.com> - 2014-03-04 10:19 -0500
            Re: Reference Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-03-04 15:42 +0000
              Re: Reference Chris Angelico <rosuav@gmail.com> - 2014-03-05 03:02 +1100
                Re: Reference Roy Smith <roy@panix.com> - 2014-03-04 11:14 -0500
              Re: Reference MRAB <python@mrabarnett.plus.com> - 2014-03-04 17:12 +0000
            Re: Reference Rustom Mody <rustompmody@gmail.com> - 2014-03-04 08:24 -0800
          Re: Reference Chris Angelico <rosuav@gmail.com> - 2014-03-05 02:25 +1100
          Re: Reference Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2014-03-05 14:37 +0100
      Re: Reference Steven D'Aprano <steve@pearwood.info> - 2014-03-04 03:59 +0000
    Re: Reference Ben Finney <ben+python@benfinney.id.au> - 2014-03-04 09:17 +1100
      Re: Reference Roy Smith <roy@panix.com> - 2014-03-03 18:02 -0500
        Re: Reference Chris Angelico <rosuav@gmail.com> - 2014-03-04 10:09 +1100
        Re: Reference Steven D'Aprano <steve@pearwood.info> - 2014-03-04 04:38 +0000
  Re: Reference Terry Reedy <tjreedy@udel.edu> - 2014-03-03 13:48 -0500
    Re: Reference Steven D'Aprano <steve@pearwood.info> - 2014-03-04 03:45 +0000
    Re: Reference Alexander Blinne <news@blinne.net> - 2014-03-04 13:55 +0100
      Re: Reference Chris Angelico <rosuav@gmail.com> - 2014-03-05 01:06 +1100
        Re: Reference Alexander Blinne <news@blinne.net> - 2014-03-04 22:53 +0100
          Re: Reference Chris Angelico <rosuav@gmail.com> - 2014-03-05 09:01 +1100

csiph-web