作者: 機械伯爵
日時: 2008/2/13(09:13)
 なんかにぎやかですねぇ。

 機械す。 

> Pythonistaと関数プログラミングの関係の図だそうです。 
> http://codepoetics.com/images/pydiag.png

 やっぱreduceがポイントかぁ……モジュール分けされただけなんですけどね。

 関数型プログラミングって参照透過性を重視するわけで、ループに次々代入さ
れてくfor文なんかは、真っ先に敬遠されるんですよね。

 Guido師の主張は「reduceは見づらいからforループで」ってのこと。

 でもそれは勿論「人間が読むコードとして」であって、関数型派の見ているの
は、デバッグする際の代入値の推移だから、どうしても話がかみ合わない。

 私個人としては、代替表記手段すら設定しないreduceは残してもいいのに、と
か思ってましたから、議論が起こるのは当然かと。

※代替表記手段があるにも関わらず残されたmap関数とはえらい違いだ……apply
 は代替表記が出来て外されたから、まぁ、いいとして……

 基本的にはfunctoolsを呼び出すわけですが、コレ、実は単なるラッパなので、
reduceはPythonの摩訶不思議な慣習である内部モジュール(_functools)として実
装されています。

 Cコードですから、「reduceの中でforループが回っている」というような恐ろ
しいことは無いのでご安心を(笑)

 ……Cコードでforをまわしていたらどうしよう(汗)

 /機械伯爵/