この記事では、ruby 1.9でprocを呼び出す4つの方法について説明し、===はそのうちの1つです。なぜこれがこのように行われるのか、私にはまったくわかりません。===の通常の意味(2つのオブジェクトが同じオブジェクトであるかどうかを尋ねる)と何らかの関係がありますか?
irb(main):010:0> f =-> n {[:hello、n]} =># irb(main):011:0> f.call(:hello) => [:hello、:hello] irb(main):012:0> f ===:hello => [:hello、:hello] irb(main):013:0> Object.new === Object.new => false irb(main):014:0> f === f => [:hello、#]