C#, C++에 이어서.. Infinite Streams를 이번에는 Python으로 구현 해보았습니다.
 최근에 사내에서 Python으로 프로젝트를 하나 진행하고 있는데..
 Python도 참 매력적인 언어라는 생각이 듭니다.

 Python에는 언어자체에서 infinite를 지원하고 있습니다.
 따라서 이전에 C++로 삽질을 한 것에 비하면 아래 처럼 매우 쉽게 구현할 수 있습니다.

from itertools import *

def fibs():
    yield 1;
    yield 1;
    h, t = tee(fibs())
    t.next()
    for i in imap(lambda (a,b):a+b, izip(h, t)):
            yield i

for i in islice(ifilter(lambda x:x%2==0, fibs()), 10): print i
 C# 코드와 사실상 별 다를바가 없는 코드지만... 언어에서 지원해주는 것이 많은 만큼 코드가 약간 깔끔해졌다(?)는 느낌이 드네요 .

Posted by U∙Seung