This post is rather off topic. If you don't want to get bogged down in 
philosophical arguments, you might want to skip this one and come back 
to my next reply, which I promise will be more on top.


On Fri, Mar 04, 2022 at 04:39:12AM +1100, Chris Angelico wrote:

> > They also do a better job of expressing *concrete* concepts, like
> > addition.
> >
> > I believe this is a BF program to read two single digit numbers, add
> > them, and print the result:
> >
> >     ,>,[<+>-]<------------------------------------------------.
> 
> This is a BF program that expresses an abstract concept of addition.

No, it expresses the concept of addition of a concrete data type, 
integer, not just in the abstract but specifically of one digit decimal 
integers. Not numbers in general, or operator overloading, or addition 
of matrices, vectors. It is not the abstract commutative, associative 
binary operator represented by `+` in abstract algebra. It is the 
concrete integer addition.

https://en.wikipedia.org/wiki/Algebraic_structure

Anyway, let's not get too bogged down over semantic disagreements about 
what is "concrete" and "abstract", since to some degree these are both 
*relative* terms. Addition of integers is concrete compared to addition 
in the abstract, and abstract compared to addition in the sense of 
adding two apples to three apples and getting five apples.


> On what basis do you consider addition to be a concrete concept?

Baby chickens of only a few days old, with no training, are 
instinctively capable of simple addition and subtraction. That's pretty 
far from the level of abstraction we find in abstract algebra, or in 
Monads (for example).

https://www.quantamagazine.org/animals-can-count-and-use-zero-how-far-does-their-number-sense-go-20210809/

https://wiki.haskell.org/All_About_Monads


> Is Python's idea of addition a single machine instruction?

Yes, it is the BINARY_ADD machine instruction in the Python virtual 
machine.

>>> dis.dis('x+y')
  1           0 LOAD_NAME                0 (x)
              2 LOAD_NAME                1 (y)
              4 BINARY_ADD
              6 RETURN_VALUE

Maybe some day, someone will create a physical Python Machine, like 
people created physical Lisp Machines and Forth Machines.


> What, in your view, makes one thing abstract and another thing 
> concrete?

I think that this discussion is already getting too far off-topic, so 
I'm going to decline to answer beyond what I have already said above.

I will respond to the rest of your post shortly.



-- 
Steve
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/JNEXQDX2LGN3OYNJHLLCZK3SH4ZI55Y4/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to