Haskellでやると書いておいて、Pythonでやっちゃう罠。 Pythonがサポートしている中途半端な継続ことgeneratorでsortすれば、遅延評価と同じく、「先頭n個だけ使う」という用途では後半のsortを実行しないで済む。 >>> l = [3,5,2,1,4,5,8,2] >>> def lazy_sort(lst): if len(lst) == 0: return mid = lst[0] left = [] right= [] for v in lst[1:]: if v < mid: left.append(v) else: right.append(v) lg = lazy_sort(left) for y in lg: yield y yield mid rg = lazy_sort(right) for y in rg: yield y >>> s = laz

