NoneType List

Thomas Passin list1 at tompassin.net
Sun Jan 1 22:14:45 EST 2023


On 1/1/2023 9:14 PM, avi.e.gross at gmail.com wrote:
> Thomas,
> 
> I used PASCAL before C and I felt like I was wearing a straitjacket
> at times in PASCAL when I was trying to write encryption/decryption
> functions and had to find ways to fiddle with bits. Similar things
> were easy in C, and are even easier in many more recent languages
> such as Python.

PASCAL was not the first language I learned.  I won't pretend I had to
do anything very complicated, or do much bit-twiddling.  It was, though, 
the first one (except probably for FORTH) I enjoyed programming with 
more than I disliked the boiler-plate formalities.

> The distinction between teaching a first language, or one that is so 
> cautious as to catch and prevent all mistakes it can, is not for
> people willing to be bolder or work faster or write routines that can
> be used more generally.
> 
> What has not been mentioned is that languages like python go a step
> further and allow a function to return many arguments and even a
> varying number of arguments, as well as none at all. To do anything
> like that in PASCAL

(or C, for that matter)

> took some thought on how to make some structure you could fill out
> then return as a single value that the receiving code had to sort of
> decode and perhaps deal with parts that could hold a union of several
> things. Can a compiler or interpreter easily verify you did something
> reasonable, as compared to say python that allows something like:
> 
> (res1, res2, _, res4, _, rest) = f(x)

Yes, that's one of the good things about Python, how it makes working
with tuples so easy and natural.  OTOH, harking back to PASCAL for a
minute, it had enumerations and sets long before Python got them.

> The above tells the interpreter you expect perhaps 6 or more results
> and what to do with them.
> 
> 
> 
> -----Original Message----- From: Python-list
> <python-list-bounces+avi.e.gross=gmail.com at python.org> On Behalf Of
> Thomas Passin Sent: Sunday, January 1, 2023 1:03 PM To:
> python-list at python.org Subject: Re: NoneType List
> 
> On 1/1/2023 8:47 AM, Stefan Ram wrote:
>> Thomas Passin <list1 at tompassin.net> writes:
>>> Guido had been working on the ABC language for some years before
>>> he developed Python.  ABC was intended mainly as a teaching and 
>>> prototyping language.
>> 
>> In those days, there used to be a language called "Pascal". Pascal
>> had a dichotomy between "functions" and "procedures". A call to a
>> function was intended to have a value. A call to a procedure was
>> intended to have an effect.
> 
> Wirth developed Pascal as a teaching language. IIRC, originally it
> was taught to students before there were any implementations. I did
> most of my programming with Turbo Pascal for many years.  Just to
> clarify what you wrote above, in Pascal a "procedure" does not return
> anything while a "function" does.
> 
> I really liked (Turbo) Pascal and I hated C back then.  No wonder I
> like Python so much.  It must be something about how my mind works.
> 
>> For some beginners, the difference between a value and and effect
>> can be hard to grasp. So, Pascal's distinction helps to hammer that
>> home.
>> 
>> Experienced programmers know the difference and do no longer 
>> require the effort of the language to teach it to them.
>> 
>> The time when someone is a beginner and still struggles to
>> understand the difference between values and effects usually is
>> significantly shorter than the later time where he has understood
>> it and is programming productively, so it might be better when the
>> language is adapted to people who already have understood the
>> difference.
>> 
>> 
> 
> -- https://mail.python.org/mailman/listinfo/python-list
> 



More information about the Python-list mailing list