Would Anonymous Functions Help in Learning Programming/Python?

Scott David Daniels Scott.Daniels at Acm.Org
Sat Sep 22 10:39:17 EDT 2007


Ron Adam wrote:
> 
> 
> Scott David Daniels wrote:
>> Cristian wrote:
>>> On Sep 21, 3:44 pm, Ron Adam <r... at ronadam.com> wrote:
>>>
>>>> I think key may be to discuss names and name binding with your friend.
>>
>> Here's an idea:
>>
>> import math
>>
>> def sin_integral(start, finish, dx): ...
>> def cos_integral(start, finish, dx): ...
>> generalize and separate the integration technique from the
>> function it integrates.
> 
> How about this?
> It's based on the apple basic program example in How to Enjoy Calculus.
>    Ron
> 
> import math
> def integrate(fn, x1, x2, n=100):...
> def fn(x): ...
> print "Area of fn:", integrate(fn, 0, 2)
> print "Area of cos fn:", integrate(math.cos, 1, 2)

The point was a pedagogic suggestion, i.e. "Try taking your
friend along this path."   I wasn't trying to do a particularly
good job integrating, simply trying to show how you could
motivate first-class functions by showing a "useful" and
"fun" (at least to an engineer) function that cries out
for higher order functions.  In my experience engineers
often want a "reason its useful" before engaging with an
idea.  I'll bet that after a few such experiences he'll see
how passing around functions and (later) making functions from
from functions is a great tool to have in his toolbox.  Once
he sees that, there will be no problem.

-Scott David Daniels
Scott.Daniels at Acm.Org



More information about the Python-list mailing list