> -----Original Message----- > From: [email protected] > Sent: Sat, 12 Jul 2014 19:21:59 +0100 > To: [email protected] > Subject: Re: [Tutor] Anti-Patterns in Python Programming > > On 12/07/14 17:43, Deb Wyatt wrote: >> >>>> So much has been invented since my dos programming days and it is >>>> overwhelming, >>> >>> Actually very little has been *invented* since your DOS days. >>> Almost everything we do today was already around back then. >>> >> I knew someone was going to say that. > > :-) > > >> Maybe it's the jargon that has been invented? > > In some cases yes, but mostly it was there all > along just hideen in obscurity. For example all the GUI stuff we take > for granted really came together at Xerox Park in the 1970's but didn't > become well known till Steve Jobs paid a visit and promptly built the > Apple Mac (after initially flopping with the Lisa!) around 1984. > >> Some questions I have at the moment: >> >> 1. What is functional programming? >> 2. What is procedural programming? >> 3. What are data patterns? >> 4. What are regular expression? > > As Mark has said I always go to Wikipedia for these kinds of answers. > It is a great resource for all things technical. I'll try to give > the newbies answers too though... > > > 1. What is functional programming? > > 2. What is procedural programming? > > These are both programming paradigms. > > Most programmers learn procedural programming first - also known as > imperative programming. This is where you tell the computer how to solve > the problem using the familiar sequences, conditionals and loops. You > then package these constructs into procedures (or functions). > You have data floating around loose and your procedures operate > on that data changing its state(values) as it goes along. > This means that in a procedural program two calls to the same > function can return different results even if they have the > same inputs: > > >>> state = True > >>> def f(n): > ... global state > ... state = not state > ... if state and (n % 2): # n is odd > ... return n ** 2 > ... else: return n > ... > >>> f(3) > 3 > >>> f(3) > 9 > > Functional programming is more like pure math. It is built on functions > that return values and the values should not depend on external state. > They always return the same result for the same input. Functional > programming also attempts (with mixed results) to produce programs that > look more like problem specifications than solution descriptions. So the > functions often operate on data sets rather than individuial items > (avoiding loops) and tend to use recursion a lot. > ( I have a topic on FP in my tutor that explains more and uses > Python to illustrate...) > > There are also Object Oriented Programming and Logic Programming > paradigms. > > > 3. What are data patterns? > > This is a bit more open ended since there are several possible answers > depending on context. At one level it can refer to data modelling > patterns that crop up again and again. For example instead of modelling > assigned to each, model it as a person and a role. All the people go in > Person, all the jobs in role. Then you assign one or more roles to each > person. When a person gets promoted you don't have to move the data > between tables you just change the relationships slightly. That is one > common data pattern in the world of modelling. But it depends on the > context where you came across the term > > > 4. What are regular expression? > > A form of text pattern. They are like wildcards for filenames but more > powerful. They are used for finding substrings in text. I have another > topic in my tutorial on regular expressions... > Nowadays most languages support regular expression searches, including > most SQL dialects on databases. > >> You all take this understanding for granted, but it's not common >> knowledge for the rest of the world. > > I sympathise. > One of the primary aims of my tutorial is to take a complete beginner to > the point where they can understand these more technical tutorials. A > lot of time has gone into explaining general computing terminology as > well as showing how to use it. As far as possible every jargon term is > explained when first introduced. > Thank you very much for your answers. I'll start going through your tutorial. I can't wait to hear more about the book you mentioned you were working on a week or two ago.
Deb in WA, USA ____________________________________________________________ FREE 3D MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks & orcas on your desktop! Check it out at http://www.inbox.com/marineaquarium _______________________________________________ Tutor maillist - [email protected] To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
