[Tutor] Passing perimeters in dictionary values?
spir
denis.spir at free.fr
Wed Feb 25 09:00:47 CET 2009
Le Wed, 25 Feb 2009 00:01:49 -0000,
"Alan Gauld" <alan.gauld at btinternet.com> s'exprima ainsi:
>
> "nathan virgil" <sdragon1984 at gmail.com> wrote
>
> > I'm not familiar with lambdas yet, and I don't think this book will
> > introduce me to them; they aren't listed in the index, anyway.
>
> lambda is just a fancy mathematical name for a simple
> concept - its a block of code, like the body of a function.
> In Python its even simpler, it is an expression. And we
> store that expression and make it callable.
>
>
> def funcname(aParam):
> return <expression using aParam>
>
> is the same as
>
> funcname = lambda aParam: <expression using aParam>
>
> In some languages, including some Lisp dialects function
> definitions are syntactic sugar for exactly that kind of lambda
> assignment. Some even make it explicit as in:
>
> (define func
> ( lambda (aParam)
> (expression using aParam)))
In io (a wonderful prototype-based languages which syntax reflects the code structure (read: parse tree) like in Lisp), you would have:
method_name := method(aParam, <expression using aParam>)
for instance:
perimeter := method(radius, 2 * PI * radius)
average := method(values,
sum := values sum
sum / values count
)
[Above: there is not '.' -- return value needs not be explicit]
> In Python its more like the other way around, functions are
> defined using def and lambdas are really syntax wrapped
> around that.
>
> lambdas are often offputting to beginners but they are useful
> in avoiding lots of small oneliner type functions (and the resultant
> namespace clutter) and they are very important in understanding
> the theory behind computing (ie. Lambda calculus).
>
> HTH,
>
>
------
la vita e estrany
More information about the Tutor
mailing list