なんかにぎやかですねぇ。
機械す。
> Pythonistaと関数プログラミングの関係の図だそうです。
> http://codepoetics.com/images/pydiag.png
やっぱreduceがポイントかぁ……モジュール分けされただけなんですけどね。
関数型プログラミングって参照透過性を重視するわけで、ループに次々代入さ
れてくfor文なんかは、真っ先に敬遠されるんですよね。
Guido師の主張は「reduceは見づらいからforループで」ってのこと。
でもそれは勿論「人間が読むコードとして」であって、関数型派の見ているの
は、デバッグする際の代入値の推移だから、どうしても話がかみ合わない。
私個人としては、代替表記手段すら設定しないreduceは残してもいいのに、と
か思ってましたから、議論が起こるのは当然かと。
※代替表記手段があるにも関わらず残されたmap関数とはえらい違いだ……apply
は代替表記が出来て外されたから、まぁ、いいとして……
基本的にはfunctoolsを呼び出すわけですが、コレ、実は単なるラッパなので、
reduceはPythonの摩訶不思議な慣習である内部モジュール(_functools)として実
装されています。
Cコードですから、「reduceの中でforループが回っている」というような恐ろ
しいことは無いのでご安心を(笑)
……Cコードでforをまわしていたらどうしよう(汗)
/機械伯爵/