タグ

ブックマーク / yatt.hatenablog.jp (1)

  • Python3000のmap,filterの仕様変更は凄い可能性があるかも - yattのブログ

    Python3000ではmapとfilterがイテレータブルなオブジェクト(それぞれmap object, filter object)を返す仕様になっている。初めて聞いたときは「うげっ、面倒だな」と思った。けれど、イテレータブルなオブジェクトを返すということは、mapとfilterをよく使うプログラムで、巨大なリストが作られては消える状況がなくなるということだ。 これって工夫の仕方しだいでSchemeの遅延ストリームのように、mapとfilterを使って短くて効率のよいプログラミングのやり方になるんじゃないかと思った。 ここでmapを使った例を。0からある整数までを2倍して1足したリストを得たいとする。この問題をmapを使って解くと下のようになる。Haskellの無限リストに似せて書いてみた。 def integer(): a = 0 while True: yield a a += 1

    Python3000のmap,filterの仕様変更は凄い可能性があるかも - yattのブログ
  • 1