# Proc.newは引数の過不足を許容する f = Proc.new { |s| "Hello, #{s}!" } f.call('Alice') #=> => "Hello, Alice!" f.call #=> "Hello, !" # ラムダは引数の数が異なるとエラーになる f = -> (s) { "Hello, #{s}!" } f.call('Alice') #=> "Hello, Alice!" f.call #=> ArgumentError: wrong number of arguments (given 0, expected 1) もうひとつはProc.newやラムダの内部でreturnやbreakを呼びだした場合の挙動です。 この記事ではこの違いをまとめてみます。 おことわり この記事は以下の公式ドキュメントの内容を独自の観点で再構成したものです。 手続きオブジ