memo:いまいちわからないprocとlambda

なんかすっきりしないなぁ。
Procのなかでreturn $hogeしたらだめなの。

#inline => 関数 => 戻ってきたっていうのをしたいだけなの
$hoge = 1
def inline
#		Proc.new { $hoge = $hoge + 1; return $hoge; }.call #だめー
		lambda { $hoge = $hoge + 1; return $hoge}.call
		$hoge = $hoge + 1
		return $hoge
end
puts inline
#なので、
$hoge = 1
def inline2(code)
#		Proc.new { $hoge = $hoge + 1; return $hoge; }.call
		code.call
		$hoge = $hoge + 1
		return $hoge
end
puts inline2(lambda { $hoge = $hoge + 1 ;return $hoge }) # >> 3
puts inline2(Proc.new { $hoge = $hoge + 1 ;return }) #だめー
puts inline2(Proc.new { $hoge = $hoge + 1 ;return $hoge}) #だめー
# ~> -:???: unexpected return (LocalJumpError)
# ~> 	from -:144:in `call'
# ~> 	from -:144:in `inline2'
# ~> 	from -:149

ローカルジャンパー。
Procのなかでreturnつかわなくしたら目をつぶれるよん