2009.04.26
Pythonで関数プログラミング入門
united-coders.com - Functional programming with Python
http://united-coders.com/christian-harms/functional-programming-with-python

Pythonを使った、関数プログラミングの入門的な記事。

短い記事なのに、すごく良くまとまっていて、説明の流れもいい。関数プログラミングの入門としても、Pythonの入門としてもいいと思う。

「整数のリストから奇数だけ取り出す」という処理を、まずforループを使った平明なロジックで書き、それを少しずつ関数プログラミングっぽい書き方にしていく。使っているのは主に、filter、map、reduce、lambda、list comprehension(リスト内包表記)など。

関数プログラミングでは、関数をオブジェクトとして渡すことが前提になり、この記事のコードでもそれがたくさん出てくる。関数をオブジェクトとして渡すのは、Pythonではしょっちゅう使われるので、Python入門者には参考になるかも。

説明は英語だが、サンプルコードがわかりやすいので、Pythonが多少読めれば、コードだけ読んでも理解できると思う。


関連:
「Pythonで関数プログラミング」をもっと深めたい人は、「Dive Into Python」の関連箇所をどうぞ。
Dive Into Python - 4.5. Filtering Lists
http://diveintopython.org/power_of_introspection/filtering_lists.html
Dive Into Python - 16.3. Filtering lists revisited
http://diveintopython.org/functional_programming/filtering_lists.html

関連エントリ:
Python 3.0ではリスト、セット、ディクショナリのいずれでも内包表記(comprehension)が使える
http://mojix.org/2008/12/05/python3_comprehension