SE Can't Code

A Tokyo based Software Engineer. Not System Engineer :(

Pythonで関数型プログラミング.

SICPを読むようになってから、完全に関数型プログラミングの魅力にハマってしまったんだけど、そのおかげか仕事で書くPythonコードがかなりキレイに書けるようになってきた。行列演算する時に、map, reduce, filterあたりの高階関数をlambdaの無名関数と合わせてよく使うぐらいだったが、カリー化もよく使うようになったし、generatorやyieldでストリームのデータ構造を遅延評価で扱ったりもする。

この頃、Scala系の関数型プログラミングの技術書をよく買っては読みふけるようになったが、手続き型よりも個人的にはスマートに書けるので自分のコードは関数型プログラミング寄りになってしまった。仕事でもたまにリファクタリングに耽ることがある。綺麗なコードを書くと気持ちがいい。

SICPを読んでからこの傾向は強くなった気がする。過去のMITのコンピュータサイエンスの一年生が最初に読む技術書だと聞いていたが、確かにプログラミングというものを最初に学ぶのに適した技術書だと思う。もっと早くSICPで勉強しておけば良かった、と後悔するぐらいに。

Python関数型プログラミングも可能な言語なので、やはりプログラミングを学ぶ用の言語としてはうってつけなのだろう。機械学習のトレンドからPythonがフィーチャーされているが、この言語から学ぶ事は機械学習に留まらない。個人的には、正規表現あたりをもっとPerlみたく使いやすくしてくれると文句はない言語なんだけどね。