ブロックをコンテキスト(ローカル変数のスコープやスタックフレーム)とともにオブジェクトにする
def c_lambda c = 10 lambda {|a,b| return a * b * c} end puts c_lambda.call(3,4) #=> 120
中身が変えられると困る様なものはあらかじめ dup(または freeze)しておけばいい?
def c_lambda2(map) map = map.dup lambda{map} end m = {"a" => "A"} l = c_lambda2(m) m["a"] = "B" p l.call #=> {"a" => "A"}
組み込みクラスの一覧は赤に比べて青は探しにくいんだよなぁ。だからと言って良い案は無いんだけど。アルファベット順より継承構造でどの辺にあるって分かる方がいいのかも。