メモ

「ときどきの雑記帖 i戦士篇」日記経由でメモ。あとで読む。


以下、Python版の実装。出典元は省略。

def qsort(L):
    if len(L) <= 1: return L
    return qsort([lt for lt in L[1:] if lt < L[0]]) + L[0:1] + \
           qsort([ge for ge in L[1:] if ge >= L[0]])
  • エラトステネスのふるい
from itertools import ifilter, count
def sieve():
    g = count(2)
    while True:
        prime = g.next()
        yield prime
        g = ifilter(lambda x, prime=prime: x%prime, g)


Pythonさん、無限リストの取り扱いをもっと一般化してください。