この記事では、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、#]