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
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