Fun with lambda and map
Andrew Gaul
gaul at spam.utexas.edu
Tue Feb 12 16:08:26 EST 2002
More information about the Python-list mailing list
Tue Feb 12 16:08:26 EST 2002
- Previous message (by thread): Fun with lambda and map
- Next message (by thread): Modules/makesetup failure
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
In article <slrna6i45q.sp.gaul at bifrost.cs.utexas.edu>, Andrew Gaul wrote: > In article <slrna6i14c.sp.gaul at bifrost.cs.utexas.edu>, Andrew Gaul wrote: >> In article <3c566a21.22129828 at news.t-online.de>, Gerson Kurz wrote: >>> fibonacci = lambda x:map(lambda o:(map(lambda c:map(lambda l:o.__setslice__(l[0],l[1],l[2]),([o[2]+3,o[2]+4,[o[0]]],[0,3,[o[1],reduce(lambda x,o:x+o,o[:2]),o[2]+1]])),range(x)),o)[1],[[1,1,0]+range(x)])[0][3:] >> >> fibonacci = lambda z: map(lambda n, f=(lambda f,x,a,b: \ >> [x<=0 and b, x>0 and f(f,x-1,b,a+b)][x>0]): f(f,n,0,1), range(z)) > > fibonacci = lambda z, f=(lambda f,x,l: \ > [x<=0 and l, x>0 and f(f,x-1,l+[l[-1]+l[-2]])][x>0]): f(f,z-2,[1,1]) In my zealousness to cut characters, I also sacrificied correctness for the base case. This should be proof enough that code like this should never be written. Here's a final, working version: Python 2.2 (#5, Jan 23 2002, 16:23:03) [GCC 3.0.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> fibonacci = lambda z, f=(lambda f,x,l=[0,1]: \ ... [x<=0 and l, x>0 and f(f,x-1,l+[l[-1]+l[-2]])][x>0]): f(f,z-1)[1:] >>> fibonacci(1) [1] >>> fibonacci(10) [1, 1, 2, 3, 5, 8, 13, 21, 34, 55] -- Andrew Gaul http://gaul.org/
- Previous message (by thread): Fun with lambda and map
- Next message (by thread): Modules/makesetup failure
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list