クロージャ 関数が内包するスコープを保持する性質 rubyのような手続型プログラミングにも、関数型プログラミングのような記法が存在する。 いわゆるブロックがrubyでいうクロージャに当たる。 rubyでは、do endや{}で囲まれた、メソッドのような手続きをブロックで表現する書き方が存在している。 ブロックはそれ単独ではメモリ上に存在することができない。 そのため、ブロックをメモリ上に残しておきたい場合は、Procという手続きオブジェクトを使用する必要がある。 ブロックは、外側で定義されたローカル変数を参照できるという性質を持っていて、Proc.newの引数に渡すことでメモリ上に残ることがで…