Ruby: lambdaメソッドを使いブロックをオブジェクト化

に関して、練習します。
他の言語と比較してRubyのコードブロックの扱いは特徴的で扱い難そうに見えますが、使いこなせればコード量を減らせるし、その結果として可読性も増すので、慣れていきたいです。

ここで、クラスProcとは

Proc はブロックをコンテキスト(ローカル変数のスコープやスタックフレーム)とともにオブジェクト化した手続きオブジェクトです。
Rubyリファレンスマニュアル : Proc

続けて、以下も練習してみる。

ここで、Enumerable#collectは、

collect : 各要素を順番にブロックに渡して評価し、その結果で要素を置き換えます。
Rubyリファレンスマニュアル : collect

ブロックが格納された変数をメソッドの引数として渡すときは「&」をその変数名の前につけます。
仮につけないと以下のようなエラーが出ます。

`collect': wrong number of arguments (1 for 0) (ArgumentError)

最後に、selectメソッドを用い、同時に評価に条件を組み込んでみます。

arr3の要素が順にブロック変数xに読み込まれます。

select : 各要素に対してブロックを評価した値が真であった要素を全て含む配列を返します。真になる要素がひとつもなかった場合は空の配列を返します。 –
Rubyリファレンスマニュアル : select