最近、いろいろな言語で続々、実装されていく関数型プログラミング技法。 今回は、Python2.7 に標準( 一部、import )に備わっていて、Python で いますぐにでもおこなえる 関数型プログラミング技法の実現手法 & 利用モジュール と メソッドについて、1ヶ所にまとめて整理してみた。 ( 目次 ) map() で 高階関数を実現 filter() で 高階関数を実現 reduce() で 高階関数を実現 & 再帰呼び出し関数 closure で 高階関数を実現 functools.partial() でカリー化(関数の部分適用)を実現 generator(ジェネレータ式)で遅延評価を実装 yield(イールド式)で遅延評価を実現 以下のコードは、この記事末尾に記載した数多くの参考ウェブサイトを参考、引用しています map() は、関数を引数に受け取る「高階関数」(関数型言語)
Python のデコレータはなかなか面白い機能だと思ったので、試しにカリー化を実装してみました。 @curry def f(x,y,z): ... などと書くと、カリー化されたfが定義されます。まぁ functools.partial があれば全然必要無いシロモノではあるのですが。 複数まとめて関数適用するとき f(x)(y)(z) とか気持ち悪いので、f.apply(x,y,z) みたいに普通っぽく呼び出せるようにもなっています。 可変長引数とは相性悪いです(*付き引数=引数1個ぶんとして扱われます)。 def arity_of(f): return len(f.func_code.co_varnames) class curry: def __init__(self, f, n=None, args=None): self.func = f self.arity = n if n !=
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く