Jackiesteed

www.github.com/jackiesteed

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
#Most of these code are picked from web, you can run them on python 2.4, enjoy it! 

# First N Fibonacci numbers
print map(lambda x,f=lambda x,f: int(x<=1) or (f(x-1,f)+f(x-2,f)): f(x,f),range(N))

# Mandelbrot set(which can be either written in one line)
print (lambda Ru,Ro,Iu,Io,IM,Sx,Sy:reduce(lambda x,y:x+y,map(lambda y,
Iu=Iu,Io=Io,Ru=Ru,Ro=Ro,Sy=Sy,L=lambda yc,Iu=Iu,Io=Io,Ru=Ru,Ro=Ro,i=IM,
Sx=Sx,Sy=Sy:reduce(lambda x,y:x+y,map(lambda x,xc=Ru,yc=yc,Ru=Ru,Ro=Ro,
i=i,Sx=Sx,F=lambda xc,yc,x,y,k,f=lambda xc,yc,x,y,k,f:(k<=0)or (x*x+y*y
>=4.0) or 1+f(xc,yc,x*x-y*y+xc,2.0*x*y+yc,k-1,f):f(xc,yc,x,y,k,f):chr(
64+F(Ru+x*(Ro-Ru)/Sx,yc,0,0,i)),range(Sx))):L(Iu+y*(Io-Iu)/Sy),range(Sy
))))(-2.1, 0.7, -1.2, 1.2, 30, 80, 24)
#    \___ ___/  \___ ___/  |   |   |__ lines on screen
#        V          V      |   |______ columns on screen
#        |          |      |__________ maximum of "iterations"
#        |          |_________________ range on y axis
#        |____________________________ range on x axis
     

#Prime numbers not greater than n
sieve = lambda n : reduce(lambda l,y:not 0 in map(lambda x:y % x, l) and l+[y] or l,xrange(2, n + 1), [] )

#Factorial
f = lambda n: reduce(lambda x, y: x * y, range(1, n + 1))
qsort = lambda lst, qsort = lambda lst, qsort:\
                               1 < len(lst) \
                                     and  qsort(filter(lambda x, y = lst[0]: x < y, lst[1:]), qsort)\
                                     + lst[0 : 1] \
                                     + qsort(filter(lambda x, y = lst[0]:x >= y, lst[1:]), qsort) \
                                     or lst:\
                                     qsort(lst, qsort)
lst = [ 1, 2, 5, -3, -54, 9, 234, -1002389]
print qsort(lst)
#"Don't try this at home, kids!"
posted on 2012-04-16 21:56  Jackiesteed  阅读(258)  评论(0编辑  收藏  举报