On Sat, 2011-01-08 at 13:43 +0000, Kevin Wright wrote:
[ . . . ]
> 
> The demand for less buggy software is also *always* present, and a
> functional style just leads to more inherently testable code - so it's
> basically a Good Thing™ even if concurrency wasn't important to you.
> 
> I also object to the idea that a list comprehension (for example) is
> more complex than an imperative loop, let alone a whole order of
> magnitude more complex!  It's simply a different way to thing about
> it.  If anything, using a declarative approach will help to simplify
> things, "pure" SQL vs cursors is an example of this simplification.

In my Python and Groovy courses I have stopped talking about
"functional" and "imperative" approaches, as I find it just creates
conflict.  Instead I talk about "action-oriented" and "data-oriented"
approaches.  Compare and contrast:

        x = [ ]
        for i in source :
                x.append ( f ( i ) )

        x = [ f ( i ) for i in source ]

Even the most hardened "imperative is everything, functional is academic
for wimps" people end up using list comprehensions by choice simply
because it is presented as the imperative, data-driven way. 

-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Road    m: +44 7770 465 077   xmpp: rus...@russel.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to