タグ

foldlに関するishideoのブックマーク (1)

  • Pythonで関数プログラミング流リスト操作を行う

    PythonでCleanやHaskellのリスト相当を準備で、関数プログラミングの準備ができたので、いよいよ関数プログラミングにチャレンジしてみよう。その前に、「関数プログラミングって何がどういいの?」という人は、 なぜ関数プログラミングは重要かを一読しておこう。 まず、Consリストを生成するいくつかの関数を定義しよう。手始めに、指定された値の無限長のConsリストを生成する関数repeat()を作る。 def repeat(v): return Cons.lazyCons(v, lambda: repeat(v)) # 一見再帰呼び出しのようだがそうではない 次に等差数列を生成する関数を定義する。 def seq(start=0, step=1): return Cons.lazyCons(start, lambda: seq(start+step, step)) Pythonzip

  • 1