[python] Buducnost Pythonu: lambda, map, filter

Petr Prikryl PrikrylP na skil.cz
Pátek Listopad 10 15:25:40 CET 2006


Roman Miklos
> A ako urobim bez lambda nejaku funkciu, ktora mi vrati funkciu?
> Napriklad toto:
> 
> >>> def linear(c):
>         return (lambda x: c*x)
> 
> >>> f1=linear(1)
> >>> f2=linear(5)
> >>> for x in range(5):
>         print "f1(%d)=%d, f2(%d)=%d" % (x,f1(x),x,f2(x))
> 
>  
> f1(0)=0, f2(0)=0
> f1(1)=1, f2(1)=5
> f1(2)=2, f2(2)=10
> f1(3)=3, f2(3)=15
> f1(4)=4, f2(4)=20


def linear(c):
    def fn(x):
        return c * x
    return fn

f1=linear(1)
f2=linear(5)
for x in range(5):
    print "f1(%d)=%d, f2(%d)=%d" % (x,f1(x),x,f2(x))


Je to prakticky stejné, jen je to pojmenované.

pepr


Další informace o konferenci Python