Fwd: Fwd: Fwd: Fwd: Python for philosophers

2013-05-19 Thread Citizen Kant
rusi said:

 And let me suggest that you follow your own advise -- Can you say what
 you have to say in 1/10th the number of words? Ok if not 1/10th then
 1/5th? 1-third?

Thanks for the suggestion. I apologize for being that expansive; maybe you
are right about this. In my world less use to be less. I'll try to review
my doubts in order to express them in a much more concise format.

Of course this is not trolling at all, and I'm intrigued by how fast
someone can fall into that kind of conclusions...

I'm pretty much interested in the topic, so I'll review the stuff.
-- 
http://mail.python.org/mailman/listinfo/python-list


Python for philosophers

2013-05-19 Thread rusi
On May 17, 1:06 am, Citizen Kant citizenk...@gmail.com wrote:
 rusi said:

  And let me suggest that you follow your own advise -- Can you say what
  you have to say in 1/10th the number of words? Ok if not 1/10th then
  1/5th? 1-third?

 Thanks for the suggestion. I apologize for being that expansive; maybe you
 are right about this. In my world less use to be less. I'll try to review
 my doubts in order to express them in a much more concise format.

 Of course this is not trolling at all, and I'm intrigued by how fast
 someone can fall into that kind of conclusions...

 I'm pretty much interested in the topic, so I'll review the stuff.

You are doing well -- Glad to see that.
Except for the subject line. What's with the Fwd-loop?
Anyway I have attempted to correct it
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-18 Thread 88888 Dihedral
Chris Angelico於 2013年5月14日星期二UTC+8上午12時24分44秒寫道:
 On Tue, May 14, 2013 at 12:53 AM, rusi rustompm...@gmail.com wrote:
 
  int fact(int n, int acc)
 
  {
 
return !n? acc : fact(n-1,acc*n);
 
  }
 
  -
 
  When I run these, the C happily keeps giving answers until a million
 
 
 
  However examined closely we find that though the C is giving answers
 
  its giving junk after around 12
 
  fact 17 is -288522240
 
  And 35 onwards its 0 (!!)
 
 
 
 That'll depend on your integer size. If it's a 32-bit integer, you
 
 can't store numbers greater than 2**31-1 (if you declared it as
 
 'unsigned int', you could go all the way to 2**32-1). I'm sure you
 
 could write this to use the GNU Multi-Precision library, but it'd be a
 
 lot more complicated. However, as far as I know, the Turing machine
 
 never promises that; its cells aren't meant to be infinite integers.
 
 
 
 The Python script is, of course, governed by sys.setrecursionlimit().
 
 But by adding a simple driver, we can test the real limit:
 
 
 
 import sys
 
 
 
 def fact(n,acc=1):
 
 return acc if not n else fact(n-1,n*acc)
 
 
 
 n=2
 
 while True:
 
 sys.setrecursionlimit(n+2)
 
 print(fact,n,has,len(str(fact(n))),digits)
 
 n*=2
 
 
 
 On my 64-bit system, running a recent trunk build of CPython 3.4, it
 
 can calculate 8192! but not 16384! (segfault). The limit seems to be
 
 12772; after that, boom. Your crash-point will quite probably vary,
 
 and I'd say there'll be compile-time options that would change that.
 
 
 
 Of course, after playing with this in Python, I had to try out Pike.
 
 Using the exact same code you proposed for C, but with a different
 
 main() to save me the hassle of keying in numbers manually, I get
 
 this:
 
 
 
 fact 8192 has 28504 digits - 0.026 secs
 
 fact 16384 has 61937 digits - 0.097 secs
 
 fact 32768 has 133734 digits - 0.389 secs
 
 fact 65536 has 287194 digits - 1.628 secs
 
 fact 131072 has 613842 digits - 7.114 secs
 
 fact 262144 has 1306594 digits - 31.291 secs
 
 fact 524288 has 2771010 digits - 133.146 secs
 
 
 
 It's still going. One core consumed, happily working on 1048576!, and
 
 not actually using all that much memory. Hmm looks like the Pike
 
 optimizer has turned this non-recursive. Okay, let's tweak it so it's
 
 not tail-recursion-optimizable:
 
 
 
   return n?n*fact(n-1,1):1;
 
 
 
 Now it bombs at 65536, saying:
 
 
 
 Svalue stack overflow. (99624 of 10 entries on stack, needed 256
 
 more entries)
 
 
 
 Hey, it's better than a segfault, which is what C would have done :)
 
 And it's a tweakable value, though I don't know what the consequences
 
 are of increasing it (presumably increased RAM usage for all Pike
 
 programs).
 
 
 
 Your final conclusion is of course correct; nothing we build can be
 
 truly infinite. But we can certainly give some very good
 
 approximations, if we're prepared to pay for them. The reality is,
 
 though, that we usually do not want to pay for approximations to
 
 infinity; why is IEEE 754 floating point so much more used than, say,
 
 arbitrary-precision rational? Most of the time, we'd rather have good
 
 performance and adequate accuracy than abysmal performance and perfect
 
 accuracy. But hey, if you want to render a Mandelbrot set and zoom in
 
 to infinity, the option IS there.
 
 
 
 ChrisA

Hey, ChisA, are you delibrately to write a recursive version
to demonstrate the stack depth problem in Python?

def fact(n):
   ret=1
   if n1: # integer checking is not used but can be added
  for x in xrange(n): ret*=x
   #print ret # debugging only for long integers 
   return ret 



In a 32 or 64 bit system, this non-recursive verssion
will be limited by the heap space not by the stack limit.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-18 Thread Chris Angelico
On Sun, May 19, 2013 at 9:56 AM, 8 Dihedral
dihedral88...@googlemail.com wrote:
 Hey, ChisA, are you delibrately to write a recursive version
 to demonstrate the stack depth problem in Python?

 def fact(n):
ret=1
if n1: # integer checking is not used but can be added
   for x in xrange(n): ret*=x
#print ret # debugging only for long integers
return ret



 In a 32 or 64 bit system, this non-recursive verssion
 will be limited by the heap space not by the stack limit.

And just when we're sure Dihedral's a bot, a post like this comes through.

Dihedral, are you intelligent? I'm still in two minds about this...
which may be why you so often appear to have no minds. I dunno.
Mathematics somewhere I fancy.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-18 Thread 88888 Dihedral
Chris Angelico於 2013年5月19日星期日UTC+8上午8時04分45秒寫道:
 On Sun, May 19, 2013 at 9:56 AM, 8 Dihedral
 
 dihedral88...@googlemail.com wrote:
 
  Hey, ChisA, are you delibrately to write a recursive version
 
  to demonstrate the stack depth problem in Python?
 
 
 
  def fact(n):
 
 ret=1
 
 if n1: # integer checking is not used but can be added
 
for x in xrange(n): ret*=x
 
 #print ret # debugging only for long integers
 
 return ret
 
 
 
 
 
 
 
  In a 32 or 64 bit system, this non-recursive verssion
 
  will be limited by the heap space not by the stack limit.
 
 
 
 And just when we're sure Dihedral's a bot, a post like this comes through.
 
 
 
 Dihedral, are you intelligent? I'm still in two minds about this...
 
 which may be why you so often appear to have no minds. I dunno.
 
 Mathematics somewhere I fancy.
 
 
 
 ChrisA

I am too lazy to write a factorial computations with primes
here.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-18 Thread Michael Torrie
On 05/18/2013 08:30 PM, 8 Dihedral wrote:
 I am too lazy to write a factorial computations with primes
 here.

Ahh, that's better.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-16 Thread Andrew Berg
Tim Daneliuk wrote:
 All You People are making this way too hard.  To understand how
 questions like the OPs ought be resolved, please read:
 
 http://pvspade.com/Sartre/cookbook.html

On this list, I would expect a Sartre reference to be something like this:
https://www.youtube.com/watch?v=crIJvcWkVcs

-- 
CPython 3.3.1 | Windows NT 6.2.9200 / FreeBSD 9.1
-- 
http://mail.python.org/mailman/listinfo/python-list


Fwd: Fwd: Fwd: Python for philosophers

2013-05-16 Thread Citizen Kant
On May 16, 5:55 am, Citizen Kant citizenk...@gmail.com wrote:
 As a matter of
 class, the word python names first a python snake than a Monty Python,
 which is 50% inspired by that python word, word that's been being
 considered the given name of a particular kind of snake since times in
 which Terry Gilliam wasn't even alive.


alex23 wrote:
 Namespaces are one honking great idea -- let's do more of those! Or
 to put it another way: context is important.

 I find it both funny and sad that you think the name of the language
 is preventing _others_ from seeing it as it is, when you're the only
 one who seems to be fixated upon it.

Maybe would be good if I share with you guys some basics of scientific
humor. As alex23 well pointed out, there's a kind of funny and sad behind
this typical human reaction. There's a lot of science observing you as a
plain humans, science has been being observing you for a long time, and
science says that people tend to laugh_at when their intuition realizes
that is in front of whatever phenomena that could undermine its thought
foundations. Believe it or not, laughing_at is mostly a sign that one's
afraid of losing his reason, a manifest sign of psychological fear. For
example, being informed about that in a few hours an asteroid named X-21
will crash your planet destroying it would also first make you react
neglecting it, then react with the typical smile_at the messenger, then if
this given messenger insists you would normally tend to overreact and
laugh_at the previously mentioned messenger, and all this will happen even
if the information brought to you says the truth. Same happens if one's mom
come one day and tells that the guy one always believed is his father is in
fact not, that there's a real father of yours that will remain forever lost
in the crowd with whom she once had an occasional sex intercourse inside
the bathroom of a bar. Then first you'll smile_at her, then if she keeps on
insisting with the funny/sad subject that alex23 well pointed out you'll
eventually start overreacting and laugh_at her. At this point, only if she
keeps on insisting with her truth until you're tired enough of overreacting
because overreacting won't ever change the fact that the guy you (need to)
believe is your biological father could keep on being whatever you please
but not that, she can reach the goal of making you understand.

I'm just an honest and polite guy asking you guys a couple of simple out of
the box questions that are important for me. Everyone here has the freedom
to keep on with their own assumptions and beliefs. If someone's interested
on thinking outside the box with me for the sake of helping me, that would
be great and highly appreciated. Thinking outside the box isn't just a
cheap thing since it's highly creative. Take note that being able to think
and write in English doesn't make you writers as, put, Faulkner. Same
happens with any other language, same happens with Python.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Fwd: Fwd: Fwd: Python for philosophers

2013-05-16 Thread rusi
On May 16, 5:28 pm, Citizen Kant citizenk...@gmail.com wrote:

 I'm just an honest and polite guy asking you guys a couple of simple out of
 the box questions that are important for me. Everyone here has the freedom
 to keep on with their own assumptions and beliefs. If someone's interested
 on thinking outside the box with me for the sake of helping me, that would
 be great and highly appreciated. Thinking outside the box isn't just a
 cheap thing since it's highly creative. Take note that being able to think
 and write in English doesn't make you writers as, put, Faulkner. Same
 happens with any other language, same happens with Python.

Let me quote your first post (OP):


 I roughly came to the idea that Python could be considered as an *economic
 mirror for data*, one that mainly *mirrors* the data the programmer types
 on its black surface, not exactly as the programmer originally typed it,
 but expressed in the most economic way possible.

And let me suggest that you follow your own advise -- Can you say what
you have to say in 1/10th the number of words? Ok if not 1/10th then
1/5th? 1-third?

If you can, you are on the way to appreciating something which you
almost came to and then lost in interminable prolixity, to wit:
 The starting question I make to myself about Python is:
 which is the single and most basic use of Python as the entity it is?

IOW a programmer is one who quickly and easily comes to the nub/core/
kernel/essence of a problem and as easily and adroitly shaves off the
irrelevant.

Else: (you cant /wont reduce your prolixity)
You are bullshitting us and we are being trolled by you
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Fwd: Fwd: Fwd: Python for philosophers

2013-05-16 Thread Chris Angelico
On Thu, May 16, 2013 at 11:46 PM, rusi rustompm...@gmail.com wrote:
 IOW a programmer is one who quickly and easily comes to the nub/core/
 kernel/essence of a problem and as easily and adroitly shaves off the
 irrelevant.

+1.

This is a fairly good description of a programmer's job. Of course,
that's the theoretical and pure programmer... a professional
programmer often has to:

* Figure out what the problem *is* based on an incomplet description
from an incompetent user via a bored telephone operator

* Traverse a morass of bureaucratic requirements and politicking just
to get the necessary hardware/software to do his work

* Deal with the Layer Eight firewalling against the implementation of
the solution he comes up with

* Attend inane meetings with bikeshedding non-technical people who
have some kind of authority over the project

* Etcetera, etcetera, etcetera.

But yeah, that's what a programmer is. :)

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-16 Thread Schneider
Maybe the implementation of the Python Interpreter could be seen as 
transition function.
This can be understand in detail, but it even if you know how the 
interpreter works, you don't really know to work

_with_ the interpreter.
Even more, there are a lot of decisions, which are made 'by design' and 
don't have a clear answer. to see why somethings are
done in the way they are done you have to understand the philosophy of 
programming with python.


bg,
Johannes

On 13.05.2013 02:34, Gregory Ewing wrote:

Citizen Kant wrote:
What I do here is to try to understand. That's different from just 
knowing. Knowledge growth must be consequence of understanding's 
increasing. As the scope of my understanding increases, the more I 
look for increasing my knowledge. Never vice versa, because, knowing 
isn't like to be right, it's just knowing.


It doesn't always work that way. With some facts plus a
theory, you can deduce more facts. But it's always possible
for there to be more facts that you can't deduce from what
you already know.

But take in account that with shortening I refer to according to 
Python's axiomatic parameters.


I think what you're trying to say is that it takes an
expression and reduces it to a canonical form, such as
a single number or single string.

That's true as far as it goes, but it barely scratches
the surface of what the Python interpreter is capable
of doing.

In the most general terms, the Python interpeter (or
any other computer system, for that matter) can be thought
of as something with an internal state, and a transition
function that takes the state together with some input
and produces another state together with some output:

   F(S1, I) -- (S2, O)

(Computer scientists call this a finite state machine,
because there is a limited number of possible internal
states -- the computer only has so much RAM, disk space,
etc.)

This seems to be what you're trying to get at with your
game-of-chess analogy.

What distinguishes one computer system from another is
the transition function. The transition function of the
Python interpreter is rather complicated, and it's
unlikely that you would be able to figure out all its
details just by poking in inputs and observing the
outputs. If you really want to understand it, you're
going to have to learn some facts, I'm sorry to say. :-)




--
GLOBE Development GmbH
Königsberger Strasse 260
48157 MünsterGLOBE Development GmbH
Königsberger Strasse 260
48157 Münster
0251/5205 390

--
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-16 Thread Grant Edwards
On 2013-05-16, Tim Daneliuk tun...@tundraware.com wrote:
 On 05/15/2013 08:01 PM, Ned Batchelder wrote:
 On 5/11/2013 4:03 PM, Citizen Kant wrote:
 Don't get me wrong. I can see the big picture and the amazing things that 
 programmers write on Python, it's just that my question points to the 
 lowest level of it's existence.

 Sometimes a cigar is just a cigar.  Python is a tool, it does what you tell 
 it.  To make an analogy, or maybe to clarify your philosophical view of the 
 world, consider a hammer.  What is the lowest level of its existence?

 --Ned.

 All You People are making this way too hard.  To understand how
 questions like the OPs ought be resolved, please read:

 http://pvspade.com/Sartre/cookbook.html

Yea, I've decided we're being trolled...

-- 
Grant Edwards   grant.b.edwardsYow! I'd like MY data-base
  at   JULIENNED and stir-fried!
  gmail.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-16 Thread Tim Daneliuk

On 05/16/2013 09:27 AM, Grant Edwards wrote:

On 2013-05-16, Tim Daneliuk tun...@tundraware.com wrote:

On 05/15/2013 08:01 PM, Ned Batchelder wrote:

On 5/11/2013 4:03 PM, Citizen Kant wrote:

Don't get me wrong. I can see the big picture and the amazing things that 
programmers write on Python, it's just that my question points to the lowest 
level of it's existence.


Sometimes a cigar is just a cigar.  Python is a tool, it does what you tell it.  To make 
an analogy, or maybe to clarify your philosophical view of the world, consider a hammer.  
What is the lowest level of its existence?

--Ned.


All You People are making this way too hard.  To understand how
questions like the OPs ought be resolved, please read:

 http://pvspade.com/Sartre/cookbook.html


Yea, I've decided we're being trolled...



   I want to create an omelet that expresses the meaninglessness of existence,
and instead they taste like cheese. 

--

Tim Daneliuk tun...@tundraware.com
PGP Key: http://www.tundraware.com/PGP/

--
http://mail.python.org/mailman/listinfo/python-list


Re: Fwd: Fwd: Python for philosophers

2013-05-16 Thread llanitedave
On Thursday, May 16, 2013 5:28:11 AM UTC-7, Citizen Kant wrote:
 On May 16, 5:55 am, Citizen Kant citizenk...@gmail.com wrote:
 
If someone's interested on thinking outside the box with me for the sake of 
helping me, that would be great and highly appreciated. 

Sorry, but you're asking for more than just thinking outside the box.  What you 
want would seem to require thinking from within the bottle.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-15 Thread Chris Angelico
On Tue, May 14, 2013 at 4:14 AM, rusi rustompm...@gmail.com wrote:
 It costs $10K for a car which goes at around 80 kmph

 Now if I want to move at 800 kmph I need to switch from car to plane
 and that will cost me in millions

 And if I want to move at 8000 kmph I need to be in a rocket in outer
 space. Cost perhaps in billions

 And maybe if I spend in trillions (leaving aside the question where I
 got the trillions) maybe my rocket can go at 80,000 kmph

 So what will it cost me to have a rocket that will go at 300,000 m/sec
 (186,000 miles per second may be more familiar)?

A $1 pocket flashlight.

:)

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Fwd: Python for philosophers

2013-05-15 Thread Grant Edwards
On 2013-05-14, Citizen Kant citizenk...@gmail.com wrote:
 2013/5/14 Steven D'Aprano steve+comp.lang.pyt...@pearwood.info

 On Tue, 14 May 2013 01:32:43 +0200, Citizen Kant wrote:

  An entity named Python must be somehow as a serpent. Don't forget that
  I'm with the freeing up of my memory, now I'm not trying to follow the
  path of what's told but acting like the monkey and pushing with my
  finger against the skin of the snake.

 Python is not named after the snake, but after Monty Python the British
 comedy troupe. And they picked their name because it sounded funny.

  http://en.wikipedia.org/wiki/Monty_Pythonhttp://en.wikipedia.org/wiki/Monty_Python

 I'm sorry to hear that. Mostly because, as an answer, seems to example
 very well the taken because I've been told how things are kind of
 actions, which is exactly the opposite of the point I'm trying to state.

Firstly, watch your quoting, Steve D'Aprano didn't write that despite
your claim that he did.

Secondly, if a the person who named something tells you they named it
after A rather than B, what are you going to do other than taken
because I've been told.  Are you claiming Guido lied about the source
of the name?

-- 
Grant Edwards   grant.b.edwardsYow! My life is a patio
  at   of fun!
  gmail.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Fwd: Fwd: Python for philosophers

2013-05-15 Thread Citizen Kant
On 2013-05-14, Citizen Kant citizenk...@gmail.com wrote:
 2013/5/14 Steven D'Aprano steve+comp.lang.pyt...@pearwood.info

 On Tue, 14 May 2013 01:32:43 +0200, Citizen Kant wrote:

  An entity named Python must be somehow as a serpent. Don't forget that
  I'm with the freeing up of my memory, now I'm not trying to follow the
  path of what's told but acting like the monkey and pushing with my
  finger against the skin of the snake.

 Python is not named after the snake, but after Monty Python the British
 comedy troupe. And they picked their name because it sounded funny.

  http://en.wikipedia.org/wiki/Monty_Python
http://en.wikipedia.org/wiki/Monty_Python

 I'm sorry to hear that. Mostly because, as an answer, seems to example
 very well the taken because I've been told how things are kind of
 actions, which is exactly the opposite of the point I'm trying to state.

Grant Edwards said:

 Firstly, watch your quoting, Steve D'Aprano didn't write that despite
 your claim that he did.

 Secondly, if a the person who named something tells you they named it
 after A rather than B, what are you going to do other than taken
 because I've been told.  Are you claiming Guido lied about the source
 of the name?

Of course not. I'm just claiming that the tree (what's been told) is
preventing him from seeing the forest (what it is). If what's been told was
(put, by the very God of Uranus) that the name's origin resides on a
string, that string's made up with the entire text of The Bible's Genesis
chapter with the word Python inserted not exactly in the middle but upper
on that tree, now I would be claiming the very same thing. As a matter of
class, the word python names first a python snake than a Monty Python,
which is 50% inspired by that python word, word that's been being
considered the given name of a particular kind of snake since times in
which Terry Gilliam wasn't even alive. Of course one always may want to
perform random hacking and turn tables just because and treat the word
python as a variable's name, setting that python equals Monty Python in
order to checkmate any given conversation. In that case we'll have to cope
then with the long lasting problem of being forced to name every python
snake as a Monty Python snake, due to the caprice of a programmer .
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Fwd: Fwd: Python for philosophers

2013-05-15 Thread alex23
On May 16, 5:55 am, Citizen Kant citizenk...@gmail.com wrote:
 As a matter of
 class, the word python names first a python snake than a Monty Python,
 which is 50% inspired by that python word, word that's been being
 considered the given name of a particular kind of snake since times in
 which Terry Gilliam wasn't even alive.

Namespaces are one honking great idea -- let's do more of those! Or
to put it another way: context is important.

I find it both funny and sad that you think the name of the language
is preventing _others_ from seeing it as it is, when you're the only
one who seems to be fixated upon it.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Fwd: Fwd: Python for philosophers

2013-05-15 Thread Fábio Santos
On 15 May 2013 20:59, Citizen Kant citizenk...@gmail.com wrote:
 Of course one always may want to perform random hacking and turn tables
just because and treat the word python as a variable's name, setting that
python equals Monty Python in order to checkmate any given conversation. In
that case we'll have to cope then with the long lasting problem of being
forced to name every python snake as a Monty Python snake, due to the
caprice of a programmer .


In Python all variables are actually labels. Labels refer to an object. An
object can be referred to by any amount of labels, but when no labels and
other references remain pointed at it, garbage collection destroys the
object. So if we set python equals Monty Python the actual python snake
will actually cease to exist.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-15 Thread Ned Batchelder

On 5/11/2013 4:03 PM, Citizen Kant wrote:
Don't get me wrong. I can see the big picture and the amazing things 
that programmers write on Python, it's just that my question points to 
the lowest level of it's existence.


Sometimes a cigar is just a cigar.  Python is a tool, it does what you 
tell it.  To make an analogy, or maybe to clarify your philosophical 
view of the world, consider a hammer.  What is the lowest level of its 
existence?


--Ned.
--
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-15 Thread Tim Daneliuk

On 05/15/2013 08:01 PM, Ned Batchelder wrote:

On 5/11/2013 4:03 PM, Citizen Kant wrote:

Don't get me wrong. I can see the big picture and the amazing things that 
programmers write on Python, it's just that my question points to the lowest 
level of it's existence.


Sometimes a cigar is just a cigar.  Python is a tool, it does what you tell it.  To make 
an analogy, or maybe to clarify your philosophical view of the world, consider a hammer.  
What is the lowest level of its existence?

--Ned.


All You People are making this way too hard.  To understand how
questions like the OPs ought be resolved, please read:

   http://pvspade.com/Sartre/cookbook.html




--

Tim Daneliuk tun...@tundraware.com
PGP Key: http://www.tundraware.com/PGP/

--
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-15 Thread Terry Jan Reedy

On 5/15/2013 9:17 PM, Tim Daneliuk wrote:


http://pvspade.com/Sartre/cookbook.html


Wikedly funny.


--
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-15 Thread alex23
On May 16, 11:17 am, Tim Daneliuk tun...@tundraware.com wrote:
    http://pvspade.com/Sartre/cookbook.html

Best recipe for tuna casserole ever! Cheers for this :)

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-15 Thread Tim Daneliuk

On 05/15/2013 10:43 PM, Terry Jan Reedy wrote:

On 5/15/2013 9:17 PM, Tim Daneliuk wrote:


http://pvspade.com/Sartre/cookbook.html


Wikedly funny.




Today I made a Black Forest cake out of five pounds of cherries and a live 
beaver,

--

Tim Daneliuk tun...@tundraware.com
PGP Key: http://www.tundraware.com/PGP/

--
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-15 Thread Tim Daneliuk

On 05/15/2013 11:49 PM, alex23 wrote:

On May 16, 11:17 am, Tim Daneliuk tun...@tundraware.com wrote:

http://pvspade.com/Sartre/cookbook.html


Best recipe for tuna casserole ever! Cheers for this :)



I have have realized that the traditional omelet form (eggs and cheese) is 
bourgeois.



--

Tim Daneliuk tun...@tundraware.com
PGP Key: http://www.tundraware.com/PGP/

--
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-15 Thread rusi
On May 16, 6:17 am, Tim Daneliuk tun...@tundraware.com wrote:
 On 05/15/2013 08:01 PM, Ned Batchelder wrote:

  On 5/11/2013 4:03 PM, Citizen Kant wrote:
  Don't get me wrong. I can see the big picture and the amazing things that 
  programmers write on Python, it's just that my question points to the 
  lowest level of it's existence.

  Sometimes a cigar is just a cigar.  Python is a tool, it does what you tell 
  it.  To make an analogy, or maybe to clarify your philosophical view of the 
  world, consider a hammer.  What is the lowest level of its existence?

  --Ned.

 All You People are making this way too hard.  To understand how
 questions like the OPs ought be resolved, please read:

    http://pvspade.com/Sartre/cookbook.html

Ha Ha! Very funny!
Also a serious reminder of what philosophy tends to become.
[Robert Pirsig wrote about the diff between philosophy and
philosophology]


 --
 
 Tim Daneliuk     tun...@tundraware.com
 PGP Key:        http://www.tundraware.com/PGP/

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-14 Thread Jake Angulo
On Tue, May 14, 2013 at 9:32 AM, Citizen Kant citizenk...@gmail.com wrote:
 Do I want to learn to program?
 I didn't say I've wanted to learn to program neither said the
 opposite. I've said that I wasn't sure.


H... i'd say you'll make very good business applications analyst.  In
fact i'd hazard to say you can make it to CIO.

Recommended reading:
* PERL for dummies by: Paul Hoffman
* Crime  Punishment by: Fyodor Dostoyevsky

With your natural philosophical talent, and just a little more
 supplementary knowledge you would Pwn  ruLZ!


Just...
pls...
dont do programming...
and Never do Python.


On Tue, May 14, 2013 at 9:32 AM, Citizen Kant citizenk...@gmail.com wrote:

 I'm amazed with your feedback, even when due to a lack of knowledge I'm
 not able to discuss some of them. I've been inspecting the stuff about
 rewriting and that drew my attention to my first intuition of Python being
 economic. Maybe could it support my impression about a thing thats behind
 the language and got to do with condensing expressions until their end
 point is reached. I'll absolutely read the book you recommended, coz looks
 perfect. The dis module thing sounds and looks perfect too. Then again
 something that was discussed here about Python being economic or not and
 how or in which sense also threw some light on my first impression about
 the language. Everything here is interesting and illustrative. Anyway, I
 think that maybe I'm missing the point and I'm not being capable of
 expressing the fundamentals of the reason why I'm here. I thought that the
 most convenient thing to do is trying to keep myself attached to the
 natural language I master (so to speak) and answer the a set of questions
 that has been formulated. Maybe with this I'm helping myself.

 Towards what purpose I'm just inspecting Python's environment?
 Towards what purpose one would be just inspecting Chess' environment.
 Eventually, I could end up playing; but that isn't told yet.

 Do I want to learn to program?
 I didn't say I've wanted to learn to program neither said the opposite.
 I've said that I wasn't sure. And I said that because it's true. I'm not
 sure. Sureness tends to proliferate at its highest rate when one is looking
 to know. I'm looking to understand this something called Python. I've came
 here as explorer. I know_about numbers of things that go_about a number of
 topics of various supposedly most separated sciences. Since I sometimes
 have the capacity for combining these knowledge units in a fancy way and
 realize a great deal of things, is that I use a lot the verb realize.
 These constant instantiations of mine are like well done objects of real
 true knowledge, made somehow by myself, by calling a method called
 understanding from the class that corresponds and apply to any number of
 memorized_data_objects that were previously instantiated in my mind coming
 from my senses. For me this seems to look like what follows:

  understanding(combination(a_set_of _memorized_data_objects))

  def real_knowledge
  understanding(a_set_of_memorized_data_objects)  # How does this
 look?

 I'm positive about that being told all the time about everything is pretty
 much an economic issue, it just saves time, which in this environment saves
 money, but at the cost of not playing with real knowledge that's verified
 by each self (checksummed so to speak). Monkeys didn't developed our actual
 brains just by being told about everything, but experiencing the phenomena,
 that now we humans are talking about.

 If not, then why do I care about Python programming?
 In part is like a gut_decision. Internet is plenty of information about
 one or another thing that one could be looking for, I've taken a look to
 Ruby and Java and C++, but was a set of Python characteristics that really
 matched with something inside of me. An entity named Python must be somehow
 as a serpent. Don't forget that I'm with the freeing up of my memory, now
 I'm not trying to follow the path of what's told but acting like the monkey
 and pushing with my finger against the skin of the snake. Could be the case
 that a stimulus_response method is being called inside of me. If that's the
 case, objects instantiated by the stimulus_response method are the first
 ones that can be considered scientific like, inside of me. Python also must
 be an entity that's able to swallow, doesn't matter that it's chicken
 object. Then it will throw whatever by its tail. For me that's interesting
 and, in me, interestingness use to call the understanding method. Then I
 realize that what's stated above implies that I can feed Python, and (here
 starts the magic) see what type of whatever throws back by its tail. Then
 I'll approach to smell any possible profit.

 What do I aim to get out of this exercise?
 Since actually I'm not running for programmer, my reason for understanding
 Python must be sui generis and it is.

 What do I think Python's core means?
 More than thinking I'm just 

Fwd: Python for philosophers

2013-05-14 Thread Citizen Kant
2013/5/14 Steven D'Aprano steve+comp.lang.pyt...@pearwood.info

 On Tue, 14 May 2013 01:32:43 +0200, Citizen Kant wrote:

  An entity named Python must be somehow as a serpent. Don't forget that
  I'm with the freeing up of my memory, now I'm not trying to follow the
  path of what's told but acting like the monkey and pushing with my
  finger against the skin of the snake.

 Python is not named after the snake, but after Monty Python the British
 comedy troupe. And they picked their name because it sounded funny.

  http://en.wikipedia.org/wiki/Monty_Pythonhttp://en.wikipedia.org/wiki/Monty_Python




 I'm sorry to hear that. Mostly because, as an answer, seems to example
 very well the taken because I've been told how things are kind of
 actions, which is exactly the opposite of the point I'm trying to state.

-- 
http://mail.python.org/mailman/listinfo/python-list


Fwd: Python for philosophers

2013-05-14 Thread Citizen Kant
From: llanitedave llanited...@veawb.coop


On Monday, May 13, 2013 4:32:43 PM UTC-7, Citizen Kant wrote:

An entity named Python must be
 somehow as a serpent.


llanitedave wrote:

 Moe like a dead parrot, actually.


That's a good one! Even If doesn't lead to the fact that Python (so to
speak) use to give an answer.
-- 
http://mail.python.org/mailman/listinfo/python-list


Fwd: Python for philosophers

2013-05-14 Thread Citizen Kant
Case study (kind of)

Imagine that I use to explore with my mind a particular topic and I want to
map and model the mechanics of that exploration. That's mostly
metaphysical. I have a partner called Python with whom I must communicate
in Python. Which would be the basics that I must know in order to pass my
ideas to him properly. With this I mean using the units of my natural
language skills that match with his language, and using them in Python's
language context, in order to program at the highest level possible. It's
true that my program won't run yet but for me this is not an obstacle at
all, as when one writes a book one can start writing an index. For some
people, this index or highest level programming could look mostly like a
void thing coz lacks of the proper meat that a Python use to eat, and in a
sense they are right. But that's not the point. The point is that as soon
as I can I would start to dig deeper in that structure and build the proper
meat that my highest level labels are just naming. What if using my ability
to name what I actually think and recognize the path of whichever method I
call from my object of thinking, I'd like to start setting a context for
further immersion (inmersion with advanced mathematical notation an that?
Somebody commented about a couple of basic elements which I'm familiarized
with, like +, -, /, =, 1,2,3,4,5,6,7,8,9,0, (), etc. I know that Python has
a set of keywords, there's also a proper way in which one must express
wholes in Python, proper way which I'm not familiarized with but I'm able
to learn. Does this help?

For me, starting with Python is an affair of connecting with it. It's not
about including it in me or including me in it, but a kind of symbiotic
relationship. Unless for me, using my natural language as far as I can, but
constrained (formalized) by Python syntax in order to model using objects
and methods and classes that are still unable to run in Python (yet) seems
to be a good starting point for a symbiotic relationship. Understanding
might depend in our ability to set ourselves in the shoes of another.

Any clues? Since this is a real goal that I'm looking to accomplish, any
question that would clarify a bit more my states will be highly appreciated.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Fwd: Python for philosophers

2013-05-14 Thread Terry Jan Reedy



2013/5/14 Steven D'Aprano steve+comp.lang.pyt...@pearwood.info
mailto:steve+comp.lang.pyt...@pearwood.info



 Python is not named after the snake, but after Monty Python the
British
 comedy troupe. And they picked their name because it sounded funny.


That does not mean they were unaware that Pythons are snakes.
requiring a slippery-sounding surname, they settled on Python


  http://en.wikipedia.org/wiki/Monty_Python
http://en.wikipedia.org/wiki/Monty_Python




--
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-14 Thread Mark Janssen
On Sat, May 11, 2013 at 1:03 PM, Citizen Kant citizenk...@gmail.com wrote:
I'm making my way to Python (and
 OOP in general) from a philosophical perspective or point of view and try to
 set the more global definition of Python's core as an entity. In order to
 do that, and following Wittgenstein's indication about that the true meaning
 of words doesn't reside on dictionaries but in the use that we make of them,
 the starting question I make to myself about Python is: which is the single
 and most basic use of Python as the entity it is?

It is a way to form order from ideas, an *experimental* philosophy.
One can apply and implement a philosophy, taking it out of the realm
of ideas and simulate them in the machine.

 I mean, beside
 programming, what's the single and most basic result one can expect from
 interacting with it directly (interactive mode)?

A game of interactions.

 I roughly came to the
 idea that Python could be considered as an economic mirror for data, one
 that mainly mirrors the data the programmer types on its black surface,

That is called the editor window in our world that is displayed on
an electronic device called a computer display, but in Samael's world
it is a mirror into our world.  He misused it to rape the crown of the
Hebrew story (found in the Bible).

 So, would it be legal (true) to define Python's core as an entity that
 mirrors whatever data one presents to it (or feed it with) showing back the
 most shortened expression of that data?

No, that is me, Marcos.
-- 
MarkJ
Tacoma, Washington
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Fwd: Python for philosophers

2013-05-14 Thread DJC

On 14/05/13 09:34, Citizen Kant wrote:

2013/5/14 Steven D'Aprano steve+comp.lang.pyt...@pearwood.info


On Tue, 14 May 2013 01:32:43 +0200, Citizen Kant wrote:


An entity named Python must be somehow as a serpent. Don't forget that
I'm with the freeing up of my memory, now I'm not trying to follow the
path of what's told but acting like the monkey and pushing with my
finger against the skin of the snake.



Python is not named after the snake, but after Monty Python the British
comedy troupe. And they picked their name because it sounded funny.



http://en.wikipedia.org/wiki/Monty_Pythonhttp://en.wikipedia.org/wiki/Monty_Python





I'm sorry to hear that. Mostly because, as an answer, seems to example
very well the taken because I've been told how things are kind of
actions, which is exactly the opposite of the point I'm trying to state.




Emanual Kant was a real piss ant
Who was very rarely stable
--
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-14 Thread Ramchandra Apte
On Sunday, 12 May 2013 01:33:15 UTC+5:30, Citizen Kant  wrote:
 Hi,
 this could be seen as an extravagant subject but that is not my original 
 purpose. I still don't know if I want to become a programmer or not. At this 
 moment I'm just inspecting the environment. I'm making my way to Python (and 
 OOP in general) from a philosophical perspective or point of view and try to 
 set the more global definition of Python's core as an entity. In order to 
 do that, and following Wittgenstein's indication about that the true meaning 
 of words doesn't reside on dictionaries but in the use that we make of them, 
 the starting question I make to myself about Python is: which is the single 
 and most basic use of Python as the entity it is? I mean, beside programming, 
 what's the single and most basic result one can expect from interacting 
 with it directly (interactive mode)? I roughly came to the idea that Python 
 could be considered as an economic mirror for data, one that mainly mirrors 
 the data the programmer types on its black surface, not exactly as the 
 programmer 
 originally typed it, but expressed in the most economic way possible. That's 
to say, for example, if one types 1+1 Python reflects 2. When data 
appears between apostrophes, then the mirror reflects, again, the same but 
expressed in the most economic way possible (that's to say without the 
apostrophes).
 So, would it be legal (true) to define Python's core as an entity that 
 mirrors whatever data one presents to it (or feed it with) showing back the 
 most shortened expression of that data?
 Don't get me wrong. I can see the big picture and the amazing things that 
 programmers write on Python, it's just that my question points to the lowest 
 level of it's existence.
 Thanks a lot for your time.
I expected some spam but this actually makes some sense.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread Gregory Ewing

Citizen Kant wrote:
What I do here is to try to understand. 
That's different from just knowing. Knowledge growth must be consequence 
of understanding's increasing. As the scope of my understanding 
increases, the more I look for increasing my knowledge. Never vice 
versa, because, knowing isn't like to be right, it's just knowing.


It doesn't always work that way. With some facts plus a
theory, you can deduce more facts. But it's always possible
for there to be more facts that you can't deduce from what
you already know.

But take in account that with shortening I 
refer to according to Python's axiomatic parameters.


I think what you're trying to say is that it takes an
expression and reduces it to a canonical form, such as
a single number or single string.

That's true as far as it goes, but it barely scratches
the surface of what the Python interpreter is capable
of doing.

In the most general terms, the Python interpeter (or
any other computer system, for that matter) can be thought
of as something with an internal state, and a transition
function that takes the state together with some input
and produces another state together with some output:

   F(S1, I) -- (S2, O)

(Computer scientists call this a finite state machine,
because there is a limited number of possible internal
states -- the computer only has so much RAM, disk space,
etc.)

This seems to be what you're trying to get at with your
game-of-chess analogy.

What distinguishes one computer system from another is
the transition function. The transition function of the
Python interpreter is rather complicated, and it's
unlikely that you would be able to figure out all its
details just by poking in inputs and observing the
outputs. If you really want to understand it, you're
going to have to learn some facts, I'm sorry to say. :-)

--
Greg
--
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread Steven D'Aprano
On Sat, 11 May 2013 22:03:15 +0200, Citizen Kant wrote:

 Hi,
 this could be seen as an extravagant subject but that is not my original
 purpose. I still don't know if I want to become a programmer or not. At
 this moment I'm just inspecting the environment.

Towards what purpose?

Do you want to learn to program? If not, then why do you care about 
Python programming? What do you aim to get out of this exercise?


 I'm making my way to
 Python (and OOP in general) from a philosophical perspective or point of
 view and try to set the more global definition of Python's core as an
 entity. 

What do you think Python's core means? What do you mean by global 
definition? What is an entity?


 In order to do that, and following Wittgenstein's indication
 about that the true meaning of words doesn't reside on dictionaries but
 in the use that we make of them, the starting question I make to myself
 about Python is: which is the single and most basic use of Python as the
 entity it is? 

Programming.

A programming language is an abstract system for performing computations. 
Or, if you prefer simple English, programming. Programming is what 
programming languages are for. That is *all* they are for.


 I mean, beside programming, 

Your question pre-supposes a counter-factual. Namely that there exists 
something *more fundamental* to programming that Python is for. One might 
as well ask:

Aside from driving screws, what is the single and most basic use of a 
screwdriver?

Just because you can pound a small nail into soft wood using the handle 
of a screwdriver, does not mean that pounding nails is more fundamental 
to the screwdriver than driving screws.


 what's the single and most
 basic result one can expect from interacting with it directly
 (interactive mode)? 

For your purposes, what is so special about interactive mode that you 
single it out in this way? Interactive mode is just like non-interactive 
mode, only the user interacts directly with the compiler, instead of 
indirectly.


-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread Steven D'Aprano
On Mon, 13 May 2013 12:34:13 +1200, Gregory Ewing wrote:

 In the most general terms, the Python interpeter (or any other computer
 system, for that matter) can be thought of as something with an internal
 state, and a transition function that takes the state together with some
 input and produces another state together with some output:
 
 F(S1, I) -- (S2, O)
 
 (Computer scientists call this a finite state machine, because there
 is a limited number of possible internal states -- the computer only has
 so much RAM, disk space, etc.)

That's not what finite state machine means. A finite state machine 
doesn't refer to the number of physical states of the underlying hardware 
implementing the device, it refers to the number of external states of 
the computation being performed. For example, a traffic light may be 
modelled by a Finite State Machine with three states: Red, Amber, Green. 
It may actually be implemented by a general purpose computer with 
trillions of internal states, or by a specialised electrical circuit, or 
by clockwork. The implementation doesn't matter. What matters is the 
three external states, any input to the device, plus the transition rules 
between them.

Python is not well-modelled as a Finite State Machine. Python is 
equivalent in computing power to a Turing Machine, while Finite State 
Machines are much weaker, so there are things that Python can do that a 
FSM cannot.


-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread Steven D'Aprano
On Sun, 12 May 2013 16:17:02 +0200, Citizen Kant wrote:

 Thank you very much for your answers.
 
 I'm afraid that, at this stage, I must prevent myself from knowing too
 much about the subject. My idea here is trying to fill the gaps,
 mostly, using intuition.

Then you are doomed to failure.

Intuition is greatly over-rated. Most of the time, it's just an excuse 
for prejudice, and a way to avoid understanding.


 What I do here is to try to understand.
 That's different from just knowing. Knowledge growth must be consequence
 of understanding's increasing. As the scope of my understanding
 increases, the more I look for increasing my knowledge. Never vice
 versa, because, knowing isn't like to be right, it's just knowing.

Define your terms. What do you think to know means? What do you think 
to understand means?

[...]
 But take in account that with shortening I
 refer to according to Python's axiomatic parameters. 

You cannot hypothesis about Python's behaviour in terms of its axiomatic 
parameters unless they know what those axiomatic parameters are. So what 
do you think Python's axiomatic parameters are, and how did you come to 
that conclusion given that you know virtually nothing about Python?


 What's shorten
 if expressed in Python? For example: I'm plainly aware that the word
 python looks shorten than 0111 0001 01110100 01101000
 0110 01101110. But it's shorten just for me and you and maybe for
 every single human, not for the computer. You type python, and the
 language (so to speak) thinks in my opinion you're not being economical
 enough coz with this you mean 0111 0001 01110100 01101000
 0110 01101110, 


Sheer nonsense, and I don't mean the part where you anthropomorphise 
Python. (The intentional stance is often an excellent way of reasoning 
about complex systems.)

Your premise that Python tries to be economical is incorrect. If 
anything, Python is the opposite: it is often profligate with resources 
(memory mostly) in order to save the human programmer time and effort. 
For example, Python dicts and lists may easily be four times as large as 
they could be (sometimes even bigger), *by design*. A list with 10 items 
may easily have space for 40 items. This is hardly economical, but it is 
a good trade-off in order to get better, and more predictable, 
performance.

[...]
 Maybe It'd be good if I explain myself a bit more. What I'm trying here
 is to grasp Python from the game's abstraction point of view, as if it
 were, for example, chess.

A lousy analogy. Python is nothing like chess. You might as well try to 
understand Python as if it were a toothbrush.



-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread Steven D'Aprano
Some further details on something mentioned about Python being 
economical.

On Sun, 12 May 2013 16:17:02 +0200, Citizen Kant wrote:

 For example: I'm plainly aware that the word python looks shorten than
 0111 0001 01110100 01101000 0110 01101110. But it's
 shorten just for me and you and maybe for every single human, not for
 the computer. You type python, and the language (so to speak) thinks
 in my opinion you're not being economical enough coz with this you mean
 0111 0001 01110100 01101000 0110 01101110, and then mirrors
 the supposedly result in its particular context. My shorten points to
 what's shorten during and inside Python's runtime.

In fact, the string python is implemented differently in different 
versions of Python. Picking Python 2.7, it may be implemented something 
like this binary string:

      
      
0111  0001  01110100  01101000
 0110  01101110  

where the spaces are purely for the convenience of the reader, and the 
question marks are internal values that I don't know enough to give the 
correct value. (Although I can predict that at least two sets of eight 
question marks is probably  0110, the length of the string.)

To be precise, this is with a narrow build, a wide build is even more 
profligate with memory. 

I'm not trying to beat the original Poster up for making an error, but 
demonstrating just how badly off track you can get by trying to reason 
from first principles (as Plato may have done) instead of empirical study 
(as Aristotle or Bacon may have done). Knowledge of how things actually 
are beats understanding of how they ought to be every time.


-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread alex23
On May 13, 5:13 pm, Steven D'Aprano steve
+comp.lang.pyt...@pearwood.info wrote:
 I'm not trying to beat the original Poster up for making an error, but
 demonstrating just how badly off track you can get by trying to reason
 from first principles (as Plato may have done) instead of empirical study
 (as Aristotle or Bacon may have done). Knowledge of how things actually
 are beats understanding of how they ought to be every time.

Nicely put, I may have to copy  paste this into another thread
here...

I always did have a soft spot for William James.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread Neil Cerutti
On 2013-05-13, Steven D'Aprano
steve+comp.lang.pyt...@pearwood.info wrote:
 I'm not trying to beat the original Poster up for making an
 error, but demonstrating just how badly off track you can get
 by trying to reason from first principles (as Plato may have
 done) instead of empirical study (as Aristotle or Bacon may
 have done). Knowledge of how things actually are beats
 understanding of how they ought to be every time.

Wasn't it Aristarchus who was considered a trouble-maker for
dropping different sized lead balls from a tower? They would land
simultaneously just as his teacher, who taught that heavier
objects fall faster, was walking past.

-- 
Neil Cerutti
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread Grant Edwards
On 2013-05-13, Steven D'Aprano steve+comp.lang.pyt...@pearwood.info wrote:

 Your premise that Python tries to be economical is incorrect. If
 anything, Python is the opposite: it is often profligate with resources 
 (memory mostly) in order to save the human programmer time and effort.

IOW, Python is designed to be economical, but the resource of concern
is not computer memory, it's the programmer's time/effort.  Computer
memory gets cheaper every year.  My time gets more valuable every year
(hopefully).

-- 
Grant Edwards   grant.b.edwardsYow! The entire CHINESE
  at   WOMEN'S VOLLEYBALL TEAM all
  gmail.comshare ONE personality --
   and have since BIRTH!!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread rusi
On May 13, 7:41 am, Steven D'Aprano steve
+comp.lang.pyt...@pearwood.info wrote:
 Python is not well-modelled as a Finite State Machine. Python is
 equivalent in computing power to a Turing Machine, while Finite State
 Machines are much weaker, so there are things that Python can do that a
 FSM cannot.

Consider the following.

Python is turing-equivalent; so is C and scheme.
I now write a recursive factorial function in all 3.
[To level the pitch all three are written tail-recursively]

Python--
def fact(n,acc=1):
return acc if not n else fact(n-1,n*acc)
C-
#include stdio.h
main(int argc, char **argv)
{
  printf(fact %d is %d\n, atoi(argv[1]), fact(atoi(argv[1],1)));
}

int fact(int n, int acc)
{
  return !n? acc : fact(n-1,acc*n);
}
-
When I run these, the C happily keeps giving answers until a million

The python crashes around a thousand.

However examined closely we find that though the C is giving answers
its giving junk after around 12
fact 17 is -288522240
And 35 onwards its 0 (!!)

So finally we do it in scheme:
(define (fact n ac)
  (if (zero? n) ac (fact (1- n) (* ac n


This program neither crashes (because of tail recursion) nor gives
wrong answers

However around 9 my entire machine becomes completely unusable
with top showing guile (scheme) taking all the memory and kswapd next
in line.

So whats the moral?

The Turing model is essentially infinite.
[A TM to compute factorial would never crash because it can never be
built]

The machines we use are finite.
As a first approx we may say that languages like C,Python,Scheme are
Turing-complete.

However in fact when we have to stuff these (conceptually beautiful)
infinite objects into messy finite objects such as Intel hardware,
some corners have to be cut.

And these 3 -- C, Python, Scheme -- CUT THE CORNERS DIFFERENTLY

So when these corners dont matter -- Turing-equivalence is fine
When they do, we must make do living in a more messy finite world
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread Chris Angelico
On Tue, May 14, 2013 at 12:53 AM, rusi rustompm...@gmail.com wrote:
 int fact(int n, int acc)
 {
   return !n? acc : fact(n-1,acc*n);
 }
 -
 When I run these, the C happily keeps giving answers until a million

 However examined closely we find that though the C is giving answers
 its giving junk after around 12
 fact 17 is -288522240
 And 35 onwards its 0 (!!)

That'll depend on your integer size. If it's a 32-bit integer, you
can't store numbers greater than 2**31-1 (if you declared it as
'unsigned int', you could go all the way to 2**32-1). I'm sure you
could write this to use the GNU Multi-Precision library, but it'd be a
lot more complicated. However, as far as I know, the Turing machine
never promises that; its cells aren't meant to be infinite integers.

The Python script is, of course, governed by sys.setrecursionlimit().
But by adding a simple driver, we can test the real limit:

import sys

def fact(n,acc=1):
return acc if not n else fact(n-1,n*acc)

n=2
while True:
sys.setrecursionlimit(n+2)
print(fact,n,has,len(str(fact(n))),digits)
n*=2

On my 64-bit system, running a recent trunk build of CPython 3.4, it
can calculate 8192! but not 16384! (segfault). The limit seems to be
12772; after that, boom. Your crash-point will quite probably vary,
and I'd say there'll be compile-time options that would change that.

Of course, after playing with this in Python, I had to try out Pike.
Using the exact same code you proposed for C, but with a different
main() to save me the hassle of keying in numbers manually, I get
this:

fact 8192 has 28504 digits - 0.026 secs
fact 16384 has 61937 digits - 0.097 secs
fact 32768 has 133734 digits - 0.389 secs
fact 65536 has 287194 digits - 1.628 secs
fact 131072 has 613842 digits - 7.114 secs
fact 262144 has 1306594 digits - 31.291 secs
fact 524288 has 2771010 digits - 133.146 secs

It's still going. One core consumed, happily working on 1048576!, and
not actually using all that much memory. Hmm looks like the Pike
optimizer has turned this non-recursive. Okay, let's tweak it so it's
not tail-recursion-optimizable:

  return n?n*fact(n-1,1):1;

Now it bombs at 65536, saying:

Svalue stack overflow. (99624 of 10 entries on stack, needed 256
more entries)

Hey, it's better than a segfault, which is what C would have done :)
And it's a tweakable value, though I don't know what the consequences
are of increasing it (presumably increased RAM usage for all Pike
programs).

Your final conclusion is of course correct; nothing we build can be
truly infinite. But we can certainly give some very good
approximations, if we're prepared to pay for them. The reality is,
though, that we usually do not want to pay for approximations to
infinity; why is IEEE 754 floating point so much more used than, say,
arbitrary-precision rational? Most of the time, we'd rather have good
performance and adequate accuracy than abysmal performance and perfect
accuracy. But hey, if you want to render a Mandelbrot set and zoom in
to infinity, the option IS there.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread rusi
On May 13, 9:24 pm, Chris Angelico ros...@gmail.com wrote:

 Your final conclusion is of course correct; nothing we build can be
 truly infinite. But we can certainly give some very good
 approximations, if we're prepared to pay for them. The reality is,
 though, that we usually do not want to pay for approximations to
 infinity; why is IEEE 754 floating point so much more used than, say,
 arbitrary-precision rational? Most of the time, we'd rather have good
 performance and adequate accuracy than abysmal performance and perfect
 accuracy. But hey, if you want to render a Mandelbrot set and zoom in
 to infinity, the option IS there.

Lets look at the costs of locomotion (which I am rounding to neat
figures for an easy discussion)

It costs $10K for a car which goes at around 80 kmph

Now if I want to move at 800 kmph I need to switch from car to plane
and that will cost me in millions

And if I want to move at 8000 kmph I need to be in a rocket in outer
space. Cost perhaps in billions

And maybe if I spend in trillions (leaving aside the question where I
got the trillions) maybe my rocket can go at 80,000 kmph

So what will it cost me to have a rocket that will go at 300,000 m/sec
(186,000 miles per second may be more familiar)?

So what am I driving at?

Some limitations are technological. Some are fundamental.

Earlier I talked of the fact that C, python and scheme hit the
finiteness wall in different ways/places.
machine word size is C's casualty
stack size is python's
memory is scheme's

The details are technological; the fact of finiteness is fundamental
just like the speed-of-light bar is fundamental.

The example of numbers is another such case.

The set of real numbers is in general not computable
Even if we restrict ourselves to the so-called computable real
numbers...
[interestingly Turing's original paper was on computable (real)
numbers]
we get into a soup because:
One can (somewhat simplistically) think of a real number as a
(potentially) infinite list of digits.
Now comparing two finite lists for equality is a trivial operation

However comparing two infinite lists gets us into trouble because both
lists may go on and on... and be same and same... for ever and ever...
In short equality for infinite lists (and therefore real numbers) is
undecidable.
[Well technically semidecidable because if they are different we get a
'not-equal' answer]

Sorry if this all sounds abstruse...
The other day I was reading someone saying that java -- which is after
all such an 'enterprisey' language -- had goofed by not providing a
half-decent money-type.

If you think about it, this is saying the opposite of your:
 But we can certainly give some very good  approximations, if we're prepared 
 to pay for them.

He cannot use int and have a billionaire (or more correctly a
2147483648-aire) add a dollar and get to zero
Nor is it a great idea to use floating point and have some clever
programmer skim off the sub-penny round-off errors into his personal
account.

tl;dr
Computers are hopelessly finite
Much harder to deal with this finitude than to hand-wave the problem
away
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread Citizen Kant
I'm amazed with your feedback, even when due to a lack of knowledge I'm not
able to discuss some of them. I've been inspecting the stuff about
rewriting and that drew my attention to my first intuition of Python being
economic. Maybe could it support my impression about a thing thats behind
the language and got to do with condensing expressions until their end
point is reached. I'll absolutely read the book you recommended, coz looks
perfect. The dis module thing sounds and looks perfect too. Then again
something that was discussed here about Python being economic or not and
how or in which sense also threw some light on my first impression about
the language. Everything here is interesting and illustrative. Anyway, I
think that maybe I'm missing the point and I'm not being capable of
expressing the fundamentals of the reason why I'm here. I thought that the
most convenient thing to do is trying to keep myself attached to the
natural language I master (so to speak) and answer the a set of questions
that has been formulated. Maybe with this I'm helping myself.

Towards what purpose I'm just inspecting Python's environment?
Towards what purpose one would be just inspecting Chess' environment.
Eventually, I could end up playing; but that isn't told yet.

Do I want to learn to program?
I didn't say I've wanted to learn to program neither said the opposite.
I've said that I wasn't sure. And I said that because it's true. I'm not
sure. Sureness tends to proliferate at its highest rate when one is looking
to know. I'm looking to understand this something called Python. I've came
here as explorer. I know_about numbers of things that go_about a number of
topics of various supposedly most separated sciences. Since I sometimes
have the capacity for combining these knowledge units in a fancy way and
realize a great deal of things, is that I use a lot the verb realize.
These constant instantiations of mine are like well done objects of real
true knowledge, made somehow by myself, by calling a method called
understanding from the class that corresponds and apply to any number of
memorized_data_objects that were previously instantiated in my mind coming
from my senses. For me this seems to look like what follows:

 understanding(combination(a_set_of _memorized_data_objects))

 def real_knowledge
 understanding(a_set_of_memorized_data_objects)  # How does this
look?

I'm positive about that being told all the time about everything is pretty
much an economic issue, it just saves time, which in this environment saves
money, but at the cost of not playing with real knowledge that's verified
by each self (checksummed so to speak). Monkeys didn't developed our actual
brains just by being told about everything, but experiencing the phenomena,
that now we humans are talking about.

If not, then why do I care about Python programming?
In part is like a gut_decision. Internet is plenty of information about one
or another thing that one could be looking for, I've taken a look to Ruby
and Java and C++, but was a set of Python characteristics that really
matched with something inside of me. An entity named Python must be somehow
as a serpent. Don't forget that I'm with the freeing up of my memory, now
I'm not trying to follow the path of what's told but acting like the monkey
and pushing with my finger against the skin of the snake. Could be the case
that a stimulus_response method is being called inside of me. If that's the
case, objects instantiated by the stimulus_response method are the first
ones that can be considered scientific like, inside of me. Python also must
be an entity that's able to swallow, doesn't matter that it's chicken
object. Then it will throw whatever by its tail. For me that's interesting
and, in me, interestingness use to call the understanding method. Then I
realize that what's stated above implies that I can feed Python, and (here
starts the magic) see what type of whatever throws back by its tail. Then
I'll approach to smell any possible profit.

What do I aim to get out of this exercise?
Since actually I'm not running for programmer, my reason for understanding
Python must be sui generis and it is.

What do I think Python's core means?
More than thinking I'm just trying to guess what Python's core must be. Any
phenomena has a core. Maybe Python is economic as a snake and it is almost
all core. What would be the core of a digestive system covered with skin?
Considering Python as which in itself is all its truth and nothing but its
truth (that's to say thinking it without all its optionals) I tend to look
at it as if one of the most economic living creatures, and maybe a core in
itself.

One color note is that in the serpent class there's no attachment method.
Serpents are unemotional, they use to drop their eggs here and there
without a care. Serpent class lacks of empathy method.

What do I mean by global definition?
I mean one that would generic enough that includes myself.

What's an entity?
It 

Re: Python for philosophers

2013-05-13 Thread Dave Angel

On 05/13/2013 07:32 PM, Citizen Kant wrote:


   SNIP



  Am I getting closer to the point?



Depends on whom you think you're talking to.  Clearly, you've replied to 
yourself, and top-posted besides.  That's not a conversation, it's a 
monologue.



--
DaveA
--
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread llanitedave
On Monday, May 13, 2013 4:32:43 PM UTC-7, Citizen Kant wrote:

An entity named Python must be 
 somehow as a serpent. 


Moe like a dead parrot, actually.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-13 Thread Steven D'Aprano
On Tue, 14 May 2013 01:32:43 +0200, Citizen Kant wrote:

 An entity named Python must be somehow as a serpent. Don't forget that
 I'm with the freeing up of my memory, now I'm not trying to follow the
 path of what's told but acting like the monkey and pushing with my
 finger against the skin of the snake.

Python is not named after the snake, but after Monty Python the British 
comedy troupe. And they picked their name because it sounded funny.

http://en.wikipedia.org/wiki/Monty_Python




-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-12 Thread Devin Jeanpierre
On Sun, May 12, 2013 at 1:17 AM, Steven D'Aprano
steve+comp.lang.pyt...@pearwood.info wrote:
 On Sat, 11 May 2013 21:45:12 -0700, rusi wrote:

 I have on occasion expressed that newcomers to this list should be
 treated with more gentleness than others. And since my own joking may be
 taken amiss, let me hasten to add (to the OP -- Citizen Kant)

 A noble aim, but I have a feeling that Citizen Kant is version 2.0 of
 8 Dihedral.

 Of course, I could be wrong.

Without benefit of the doubt, kindness is impossible. I would suggest
giving newcomers at least that much.

-- Devin
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-12 Thread Citizen Kant
Thank you very much for your answers.

I'm afraid that, at this stage, I must prevent myself from knowing too
much about the subject. My idea here is trying to fill the gaps, mostly,
using intuition. What I do here is to try to understand. That's different
from just knowing. Knowledge growth must be consequence of understanding's
increasing. As the scope of my understanding increases, the more I look for
increasing my knowledge. Never vice versa, because, knowing isn't like to
be right, it's just knowing.

Greg: your point is that
-
 12**34
492223524295202670403711324312
2008064L

The input is 6 characters long, and the output
is 37 characters long. Is that more economical?
--

and that's a good one. But take in account that with shortening I refer
to according to Python's axiomatic parameters. What's shorten if
expressed in Python? For example: I'm plainly aware that the word python
looks shorten than 0111 0001 01110100 01101000 0110 01101110.
But it's shorten just for me and you and maybe for every single human, not
for the computer. You type python, and the language (so to speak) thinks
in my opinion you're not being economical enough coz with this you mean
0111 0001 01110100 01101000 0110 01101110, and then mirrors
the supposedly result in its particular context. My shorten points to
what's shorten during and inside Python's runtime.

Maybe It'd be good if I explain myself a bit more. What I'm trying here is
to grasp Python from the game's abstraction point of view, as if it were,
for example, chess. That's why I need a real_player to point me to: (so to
speak, I wish I could express the ideas according to the python's syntax
but that's out of my scope by now)

games.python.board(like the chessboard but in abstract)  # with board I'm
not necessarily referring to the black on Python's command line or any
other substitutes for that, but to its axiomatic context. Which are those
unchangeable things that limit so firmly the dynamics of the game, and that
in this context must be considered like hardware, the most material part of
Python. Coz (in my neophyte opinion) these are the things that (in a more
or less obvious way) limit the dynamic of any attempt to introduce a
change in this game.

games.python.pieces(a finite number of named elements)   # one example of
what in Python (unless for me) seems to look like pieces are
python.keywords(python2). Might be more entities that can be considered
like pieces...

games.python.start(the position that each piece must assume over the given
board in order to conform the sign of this kind of game's starting
point)   # following the example of the only pieces I've recognized so
far, I would drive myself to think about the state of python.keywords
Of course with state I could be referring to any kind of state. The only
clue is that, as far I can see, is expected that those hypothetical states
come in pairs, like state(available, unavailable)

games.python.end(game's final point or highest achievement)  #I never
forget that checkmate is just a sign that can be observed looking at the
board or axiomatic structure that in the game remains static. That
end_sign usually is, no more nor less than a transformation of the
start_sign, transformation that, sometimes, shorten it.

games.python.pieces.behavior(the legal or non erroneous modifications that
can be made to the start_sign in order to convert it to end_sign)

games.python.player.rear.avoid(what it must be avoided by any legal -non
erroneous- means)  # seems to be that the kind of things to be avoided are
not precisely making errors, since Python will tell. Making errors is just
something that's so illegal that simply doesn't take place. With avoid I
mean what happens when you get checked by running code that doesn't lead to
any error messages but at the same time doesn't give the expected result.

My goal right now is to produce one or more abstracts that explain (mainly
for myself but extensive to others) about how I deal with some problems
related to our search for emphaty nature at the time of what we tend to
consider interaction (learning to write in Python in interactive mode, or
just programming, is one of that cases). In essence, due to Python's lack
of empathy, one must adopt its shape and ways to (so to speak) interact
with it. Python could be considered like a solitary game, and in my opinion
could be taken as it is from the beginning, in order to properly understand
what one exactly is doing. That seems to be the best way to properly
understand Python; then knowledge will come, naturally as a perfect
search of, exactly, the things that understanding needs.

Any clue about this would be highly appreciated.


2013/5/11 Citizen Kant citizenk...@gmail.com

 Hi,
 this could be seen as an extravagant subject but that is not my original
 purpose. I still don't know if I want to 

Re: Python for philosophers

2013-05-12 Thread Steven D'Aprano
On Sun, 12 May 2013 16:17:02 +0200, Citizen Kant wrote:

 Any clue about this would be highly appreciated.

If you are interested in the intersection of programming and philosophy, 
I strongly recommend that you read Gödel, Escher, Bach: An Eternal 
Golden Braid by Douglas R. Hofstadter.



-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-12 Thread Steven D'Aprano
On Sun, 12 May 2013 04:15:30 -0400, Devin Jeanpierre wrote:

 On Sun, May 12, 2013 at 1:17 AM, Steven D'Aprano
 steve+comp.lang.pyt...@pearwood.info wrote:
 On Sat, 11 May 2013 21:45:12 -0700, rusi wrote:

 I have on occasion expressed that newcomers to this list should be
 treated with more gentleness than others. And since my own joking may
 be taken amiss, let me hasten to add (to the OP -- Citizen Kant)

 A noble aim, but I have a feeling that Citizen Kant is version 2.0 of
 8 Dihedral.

 Of course, I could be wrong.
 
 Without benefit of the doubt, kindness is impossible.

That is a logical non sequitor. One can choose to be kind to someone even 
if you have no doubt that they do not deserve it.

Besides, kindness is hard to define. Is it kinder to give somebody what 
they want, or what they need?

 I would suggest giving newcomers at least that much.

I'm happy to say that, based on Citizen Kant's second post, I'm now 
reasonably confident that (s)he is not a bot. No mere artificial 
intelligence could have written that second post.



-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-12 Thread Chris Angelico
On Mon, May 13, 2013 at 12:17 AM, Citizen Kant citizenk...@gmail.com wrote:
 Maybe It'd be good if I explain myself a bit more. What I'm trying here is
 to grasp Python from the game's abstraction point of view, as if it were,
 for example, chess.

Maybe you're going for something a little too complicated. Let's boil
the question down to a much MUCH simpler subset: expression
evaluation. And let's take Python itself right out of the picture, and
work with only the following elements:

* Parentheses ( )
* Multiplication and division * /
* Addition and subtraction + -
* Decimal integer constants 0123456789

This will give the basics of algebraic evaluation. It's quite fun to
build a simple little expression evaluator that just does these few
operations, and it's surprisingly useful (embed it within a command
interpreter, for instance). Some time ago I wrote one into a Windows
app (written in C++), and when I pulled it out just now and made it a
stand-alone tool, the whole thing was only ~60 lines of code. Nice and
easy to work with.

So, let's take an expression and see what it really means.

2*(3+4)+6

One way to interpret this is with a stack. Here's how Python evaluates
that expression:

 def foo():
return 2*(three+4)+6

 dis.dis(foo)
  2   0 LOAD_CONST   1 (2)
  3 LOAD_GLOBAL  0 (three)
  6 LOAD_CONST   2 (4)
  9 BINARY_ADD
 10 BINARY_MULTIPLY
 11 LOAD_CONST   3 (6)
 14 BINARY_ADD
 15 RETURN_VALUE

(I had to replace one of the constants with a global, to foil the optimizer)

The LOAD statements add to an internal stack, the BINARY operations
pop two operands and push the result. This is more-or-less the same
technique as I used in my evaluator, except that instead of compiling
it to code, I just march straight through, left to right, and so I had
to maintain two stacks (one of operands, one of operators).

Is this what you had in mind when you wanted to grasp Python's
internals? Because it's pretty easy to explore, thanks to the dis
module. There's a huge amount that can be learned about the
interpreter, its optimizers, and so on, just by disassembling
functions. Alternatively, if you're thinking on a more abstract level,
leave Python aside altogether and pick up a book on language design.
Also can be awesome fun, but completely different.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-12 Thread rusi
On May 12, 7:17 pm, Citizen Kant citizenk...@gmail.com wrote:
 Maybe It'd be good if I explain myself a bit more. What I'm trying here is
 to grasp Python from the game's abstraction point of view, as if it were,
 for example, chess. That's why I need a real_player to point me to: (so to
 speak, I wish I could express the ideas according to the python's syntax
 but that's out of my scope by now)

On seeing the interest in games, I can only reiterate the suggestion
to look at rewrite systems
Here is on of the classics on rewrite systems

http://rewriting.loria.fr/documents/survey-draft.ps.gz

whose starting example is a game.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-12 Thread llanitedave
On Sunday, May 12, 2013 7:51:28 AM UTC-7, Chris Angelico wrote:
 On Mon, May 13, 2013 at 12:17 AM, Citizen Kant citizenk...@gmail.com wrote:
 
  Maybe It'd be good if I explain myself a bit more. What I'm trying here is
 
  to grasp Python from the game's abstraction point of view, as if it were,
 
  for example, chess.
 
 
 
 Maybe you're going for something a little too complicated. Let's boil
 
 the question down to a much MUCH simpler subset: expression
 
 evaluation. And let's take Python itself right out of the picture, and
 
 work with only the following elements:
 
 
 
 * Parentheses ( )
 
 * Multiplication and division * /
 
 * Addition and subtraction + -
 
 * Decimal integer constants 0123456789
 
 
 
 This will give the basics of algebraic evaluation. It's quite fun to
 
 build a simple little expression evaluator that just does these few
 
 operations, and it's surprisingly useful (embed it within a command
 
 interpreter, for instance). Some time ago I wrote one into a Windows
 
 app (written in C++), and when I pulled it out just now and made it a
 
 stand-alone tool, the whole thing was only ~60 lines of code. Nice and
 
 easy to work with.
 
 
 
 So, let's take an expression and see what it really means.
 
 
 
 2*(3+4)+6
 
 
 
 One way to interpret this is with a stack. Here's how Python evaluates
 
 that expression:
 
 
 
  def foo():
 
   return 2*(three+4)+6
 
 
 
  dis.dis(foo)
 
   2   0 LOAD_CONST   1 (2)
 
   3 LOAD_GLOBAL  0 (three)
 
   6 LOAD_CONST   2 (4)
 
   9 BINARY_ADD
 
  10 BINARY_MULTIPLY
 
  11 LOAD_CONST   3 (6)
 
  14 BINARY_ADD
 
  15 RETURN_VALUE
 
 
 
 (I had to replace one of the constants with a global, to foil the optimizer)
 
 
 
 The LOAD statements add to an internal stack, the BINARY operations
 
 pop two operands and push the result. This is more-or-less the same
 
 technique as I used in my evaluator, except that instead of compiling
 
 it to code, I just march straight through, left to right, and so I had
 
 to maintain two stacks (one of operands, one of operators).
 
 
 
 Is this what you had in mind when you wanted to grasp Python's
 
 internals? Because it's pretty easy to explore, thanks to the dis
 
 module. There's a huge amount that can be learned about the
 
 interpreter, its optimizers, and so on, just by disassembling
 
 functions. Alternatively, if you're thinking on a more abstract level,
 
 leave Python aside altogether and pick up a book on language design.
 
 Also can be awesome fun, but completely different.
 
 
 
 ChrisA

No, that won't help.  You're trying to give him knowledge; he wants 
understanding.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-12 Thread Chris Angelico
On Mon, May 13, 2013 at 4:13 AM, llanitedave llanited...@veawb.coop wrote:
 On Sunday, May 12, 2013 7:51:28 AM UTC-7, Chris Angelico wrote:
 On Mon, May 13, 2013 at 12:17 AM, Citizen Kant citizenk...@gmail.com wrote:

  Maybe It'd be good if I explain myself a bit more. What I'm trying here is

  to grasp Python from the game's abstraction point of view, as if it were,

  for example, chess.



 Maybe you're going for something a little too complicated. Let's boil

 the question down to a much MUCH simpler subset: expression

 evaluation. And let's take Python itself right out of the picture, and

 work with only the following elements:



 * Parentheses ( )

 * Multiplication and division * /

 * Addition and subtraction + -

 * Decimal integer constants 0123456789



 This will give the basics of algebraic evaluation. It's quite fun to

 build a simple little expression evaluator that just does these few

 operations, and it's surprisingly useful (embed it within a command

 interpreter, for instance). Some time ago I wrote one into a Windows

 app (written in C++), and when I pulled it out just now and made it a

 stand-alone tool, the whole thing was only ~60 lines of code. Nice and

 easy to work with.



 So, let's take an expression and see what it really means.



 2*(3+4)+6



 One way to interpret this is with a stack. Here's how Python evaluates

 that expression:



  def foo():

   return 2*(three+4)+6



  dis.dis(foo)

   2   0 LOAD_CONST   1 (2)

   3 LOAD_GLOBAL  0 (three)

   6 LOAD_CONST   2 (4)

   9 BINARY_ADD

  10 BINARY_MULTIPLY

  11 LOAD_CONST   3 (6)

  14 BINARY_ADD

  15 RETURN_VALUE



 (I had to replace one of the constants with a global, to foil the optimizer)



 The LOAD statements add to an internal stack, the BINARY operations

 pop two operands and push the result. This is more-or-less the same

 technique as I used in my evaluator, except that instead of compiling

 it to code, I just march straight through, left to right, and so I had

 to maintain two stacks (one of operands, one of operators).



 Is this what you had in mind when you wanted to grasp Python's

 internals? Because it's pretty easy to explore, thanks to the dis

 module. There's a huge amount that can be learned about the

 interpreter, its optimizers, and so on, just by disassembling

 functions. Alternatively, if you're thinking on a more abstract level,

 leave Python aside altogether and pick up a book on language design.

 Also can be awesome fun, but completely different.



 ChrisA

 No, that won't help.  You're trying to give him knowledge; he wants 
 understanding.

I can't give him understanding. Best I can do is offer facts, which
lead to knowledge, which lead to understanding if absorbed
appropriately. Also, sources of knowledge (like dis.dis) can be VERY
powerful tools in gaining understanding.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-12 Thread alex23
On May 13, 12:30 am, Steven D'Aprano steve
+comp.lang.pyt...@pearwood.info wrote:
 If you are interested in the intersection of programming and philosophy,
 I strongly recommend that you read Gödel, Escher, Bach: An Eternal
 Golden Braid by Douglas R. Hofstadter.

+1

-- 
http://mail.python.org/mailman/listinfo/python-list


Python for philosophers

2013-05-11 Thread Citizen Kant
Hi,
this could be seen as an extravagant subject but that is not my original
purpose. I still don't know if I want to become a programmer or not. At
this moment I'm just inspecting the environment. I'm making my way to
Python (and OOP in general) from a philosophical perspective or point of
view and try to set the more global definition of Python's core as an
entity. In order to do that, and following Wittgenstein's indication
about that the true meaning of words doesn't reside on dictionaries but in
the use that we make of them, the starting question I make to myself about
Python is: which is the single and most basic use of Python as the entity
it is? I mean, beside programming, what's the single and most basic result
one can expect from interacting with it directly (interactive mode)? I
roughly came to the idea that Python could be considered as an *economic
mirror for data*, one that mainly *mirrors* the data the programmer types
on its black surface, not exactly as the programmer originally typed it,
but expressed in the most economic way possible. That's to say, for
example, if one types 1+1 Python reflects 2. When data appears
between apostrophes, then the mirror reflects, again, the same but
expressed in the most economic way possible (that's to say without the
apostrophes).

So, would it be legal (true) to define Python's core as an entity that
mirrors whatever data one presents to it (or feed it with) showing back the
most shortened expression of that data?

Don't get me wrong. I can see the big picture and the amazing things that
programmers write on Python, it's just that my question points to the
lowest level of it's existence.

Thanks a lot for your time.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-11 Thread Mark Janssen
On Sat, May 11, 2013 at 1:03 PM, Citizen Kant citizenk...@gmail.com wrote:
[...] the starting question I make to myself about Python is: which is the 
single
 and most basic use of Python as the entity it is? I mean, beside
 programming, what's the single and most basic result one can expect from
 interacting with it directly (interactive mode)? I roughly came to the
 idea that Python could be considered as an economic mirror for data, one
 that mainly mirrors the data the programmer types on its black surface, not
 exactly as the programmer originally typed it, but expressed in the most
 economic way possible. That's to say, for example, if one types 1+1
 Python reflects 2. When data appears between apostrophes, then the mirror
 reflects, again, the same but expressed in the most economic way possible
 (that's to say without the apostrophes).

Wow.  You must be from another planet.  Find Socrates if you wish to
know these things.  He's from there also.

A-dam.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-11 Thread Fábio Santos
On 11 May 2013 21:07, Citizen Kant citizenk...@gmail.com wrote:

 Hi,
 this could be seen as an extravagant subject but that is not my original
purpose. I still don't know if I want to become a programmer or not. At
this moment I'm just inspecting the environment. I'm making my way to
Python (and OOP in general) from a philosophical perspective or point of
view and try to set the more global definition of Python's core as an
entity. In order to do that, and following Wittgenstein's indication
about that the true meaning of words doesn't reside on dictionaries but in
the use that we make of them, the starting question I make to myself about
Python is: which is the single and most basic use of Python as the entity
it is? I mean, beside programming, what's the single and most basic result
one can expect from interacting with it directly (interactive mode)? I
roughly came to the idea that Python could be considered as an economic
mirror for data, one that mainly mirrors the data the programmer types on
its black surface, not exactly as the programmer originally typed it, but
expressed in the most economic way possible. That's to say, for example, if
one types 1+1 Python reflects 2. When data appears between
apostrophes, then the mirror reflects, again, the same but expressed in the
most economic way possible (that's to say without the apostrophes).

 So, would it be legal (true) to define Python's core as an entity that
mirrors whatever data one presents to it (or feed it with) showing back the
most shortened expression of that data?

 Don't get me wrong. I can see the big picture and the amazing things that
programmers write on Python, it's just that my question points to the
lowest level of it's existence.

 Thanks a lot for your time.


I can't tell if you are being sarcastic but I'll reply anyway. Python does
not necessarily shorten data. The Python machine is the house for your
representations of data, your own mirrors.

When you program you are asking python to acknowledge your representations
and to do work on them as you specify. Both of these tasks are expressed in
code. The first is the simplest, where you create your classes. It is
optional since you may use no classes at all and instead use files, text
and numbers, or classes given by someone else. The second is where you give
the orders and lay a script (as in a movie script, or a game script) out.
You can create and command many representations of data in order to make
your program fulfill its purpose. You can also make choices according to
the current state of your data.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-11 Thread alex23
On 12 May, 06:10, Mark Janssen dreamingforw...@gmail.com wrote:
 Wow.  You must be from another planet.  Find Socrates if you wish to
 know these things.  He's from there also.

Now now, there's no need for a turf war, there's plenty of room on
this list for crazies.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-11 Thread Gregory Ewing

Citizen Kant wrote:
I roughly came to the idea that Python could be 
considered as an *economic mirror for data*, one that mainly *mirrors* 
the data the programmer types on its black surface, not exactly as the 
programmer originally typed it, but expressed in the most economic way 
possible.


At best, this would be true only for a very small
subset of things that you can enter into the
interactive interpreter.

Even confining yourself to arithmetic expressions,
there are problems. Consider:

 12**34
4922235242952026704037113243122008064L

The input is 6 characters long, and the output
is 37 characters long. Is that more economical?

--
Greg
--
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-11 Thread Ned Batchelder


On 5/11/2013 4:03 PM, Citizen Kant wrote:

Hi,
this could be seen as an extravagant subject but that is not my 
original purpose. I still don't know if I want to become a programmer 
or not. At this moment I'm just inspecting the environment. I'm making 
my way to Python (and OOP in general) from a philosophical perspective 
or point of view and try to set the more global definition of Python's 
core as an entity. In order to do that, and following Wittgenstein's 
indication about that the true meaning of words doesn't reside on 
dictionaries but in the use that we make of them, the starting 
question I make to myself about Python is: which is the single and 
most basic use of Python as the entity it is? I mean, beside 
programming, what's the single and most basic result one can expect 
from interacting with it directly (interactive mode)? I roughly came 
to the idea that Python could be considered as an *economic mirror for 
data*, one that mainly *mirrors* the data the programmer types on its 
black surface, not exactly as the programmer originally typed it, but 
expressed in the most economic way possible. That's to say, for 
example, if one types 1+1 Python reflects 2. When data appears 
between apostrophes, then the mirror reflects, again, the same but 
expressed in the most economic way possible (that's to say without the 
apostrophes).


So, would it be legal (true) to define Python's core as an entity that 
mirrors whatever data one presents to it (or feed it with) showing 
back the most shortened expression of that data?


Don't get me wrong. I can see the big picture and the amazing things 
that programmers write on Python, it's just that my question points to 
the lowest level of it's existence.


Thanks a lot for your time.




Python is straightforward: you write instructions, and it executes 
them.  At its core, that's all it does.  Why does the core have to be 
any different than that?


--Ned.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-11 Thread Joel Goldstick
On Sat, May 11, 2013 at 4:03 PM, Citizen Kant citizenk...@gmail.com wrote:

 Hi,
 this could be seen as an extravagant subject but that is not my original
 purpose. I still don't know if I want to become a programmer or not.


My guess is that you don't want to be a programmer.  Otherwise you would
know that you did.


 At this moment I'm just inspecting the environment. I'm making my way to
 Python (and OOP in general) from a philosophical perspective or point of
 view and try to set the more global definition of Python's core as an
 entity. In order to do that, and following Wittgenstein's indication
 about that the true meaning of words doesn't reside on dictionaries but in
 the use that we make of them, the starting question I make to myself about
 Python is: which is the single and most basic use of Python as the entity
 it is? I mean, beside programming, what's the single and most basic result
 one can expect from interacting with it directly (interactive mode)? I
 roughly came to the idea that Python could be considered as an *economic
 mirror for data*, one that mainly *mirrors* the data the programmer types
 on its black surface, not exactly as the programmer originally typed it,
 but expressed in the most economic way possible. That's to say, for
 example, if one types 1+1 Python reflects 2. When data appears
 between apostrophes, then the mirror reflects, again, the same but
 expressed in the most economic way possible (that's to say without the
 apostrophes).

 So, would it be legal (true) to define Python's core as an entity that
 mirrors whatever data one presents to it (or feed it with) showing back the
 most shortened expression of that data?

 Don't get me wrong. I can see the big picture and the amazing things that
 programmers write on Python, it's just that my question points to the
 lowest level of it's existence.

 Thanks a lot for your time.

 --
 http://mail.python.org/mailman/listinfo/python-list




-- 
Joel Goldstick
http://joelgoldstick.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-11 Thread rusi
On May 12, 3:16 am, alex23 wuwe...@gmail.com wrote:
 On 12 May, 06:10, Mark Janssen dreamingforw...@gmail.com wrote:

  Wow.  You must be from another planet.  Find Socrates if you wish to
  know these things.  He's from there also.

 Now now, there's no need for a turf war, there's plenty of room on
 this list for crazies.

I'm reminded of this:

Conversation between inmate and attendant in an asylum

Inmate: I am Napoleon
Attendant: Yes of course. But how did you know that?
Inmate: God himself told me s…
[Loud voice from another corner] I told you no such thing!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-11 Thread Chris Angelico
On Sun, May 12, 2013 at 2:22 PM, rusi rustompm...@gmail.com wrote:
 On May 12, 3:16 am, alex23 wuwe...@gmail.com wrote:
 On 12 May, 06:10, Mark Janssen dreamingforw...@gmail.com wrote:

  Wow.  You must be from another planet.  Find Socrates if you wish to
  know these things.  He's from there also.

 Now now, there's no need for a turf war, there's plenty of room on
 this list for crazies.

 I'm reminded of this:

 Conversation between inmate and attendant in an asylum

 Inmate: I am Napoleon
 Attendant: Yes of course. But how did you know that?
 Inmate: God himself told me s…
 [Loud voice from another corner] I told you no such thing!

Who's been telling you of private conversations between Steven and me?

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-11 Thread rusi
On May 12, 9:22 am, rusi rustompm...@gmail.com wrote:
 On May 12, 3:16 am, alex23 wuwe...@gmail.com wrote:

  On 12 May, 06:10, Mark Janssen dreamingforw...@gmail.com wrote:

   Wow.  You must be from another planet.  Find Socrates if you wish to
   know these things.  He's from there also.

  Now now, there's no need for a turf war, there's plenty of room on
  this list for crazies.

 I'm reminded of this:

 Conversation between inmate and attendant in an asylum

 Inmate: I am Napoleon
 Attendant: Yes of course. But how did you know that?
 Inmate: God himself told me s…
 [Loud voice from another corner] I told you no such thing!

I have on occasion expressed that newcomers to this list should be
treated with more gentleness than others.
And since my own joking may be taken amiss, let me hasten to add (to
the OP -- Citizen Kant)

What you are looking for is more in line with what is called
'rewriting systems'
And the shortening you talk of is usually called 'canonical form' or
'normal form'

Python is closer to such than traditional imperative/OO languages like
C/C++/Java, though other languages -- usually called 'functional
language' are generally closer to this ideal.

The most mainstream of these today is probably 'Haskell'
For your purposes however you may want to look at functional languages
that are more explicitly based on rewriting such as 'Pure' (earlier
'Q')

For last http://en.wikipedia.org/wiki/Pure_%28programming_language%29

For rest: Ive tried to put into quotes things that could he helpful
starting points for search engine research
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python for philosophers

2013-05-11 Thread Steven D'Aprano
On Sat, 11 May 2013 21:45:12 -0700, rusi wrote:

 I have on occasion expressed that newcomers to this list should be
 treated with more gentleness than others. And since my own joking may be
 taken amiss, let me hasten to add (to the OP -- Citizen Kant)

A noble aim, but I have a feeling that Citizen Kant is version 2.0 of 
8 Dihedral.

Of course, I could be wrong.


-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list