クロージャについて勉強

クロージャ、奥が深い。最近 Ruby をかじるようになって、ようやくクロージャというものがわかってきたところだけど、最初はかなり取っ付きにくい概念だった。closure (閉包)という言葉の意味もよくわかってなかったし。今なら、「環境」を閉包したからクロージャなのか、とわかるけど。

ただ、繰り返しを再帰で書くのはなんだかなーという感じで、いまいち頭がついてこない。自分の頭が手続き型言語の制御構造(for とか while とか)に慣れ切っているせいもあるかも知れないが、そもそも人間って「繰り返し」を「再帰」として考えたりしない*1からじゃないだろうか。そういう点では、for とか while とかいった愚直な制御構造の方が、より人間の思考形態に寄り添っているという点において、再帰によるループより、より「高級」であるという気がする。*2


オブジェクトとクロージャの関係については、以下の記事も参考になる。

*1:普通のやつらの上を行ってる人達に関しては、そうでない可能性もある(笑)

*2:何をもって「高級」とするのか、正直言うとよくわからないんだけどね(汗)