superclass=Object
type=class
library=_builtin
extended=
included=

֥å򥳥ƥ(ѿΥפ䥹å
졼)ȤȤ˥֥Ȳ³֥ȤǤ

Proc 
ѿΥפƳʤȤ̾ΤʤؿΤ褦˻
ޤ([[unknown:RubyѸ콸/ʥߥåѿ]] Proc 
ѿȤƻȤޤ)

Proc ѿΥפݻƤ뤳Ȥϰʲ
ѿ var 򻲾ȤǤƤ뤳Ȥ狼ޤ

  var = 1
  $foo = Proc.new { var }
  var = 2

  def foo
    $foo.call
  end

  p foo       # => 2

Proc ᥽åɤ꥿󤷤Ƥޤä Proc
 [[unknown:湽¤/return]], [[unknown:湽¤/retry]] 㳰
[[c:LocalJumpError]] ȯޤ

  def foo
    proc { return }
  end

  foo.call
  # => in `call': return from proc-closure (LocalJumpError)

  def foo
    proc { retry }
  end

  foo.call
  # => in `call': retry from proc-closure (LocalJumpError)

֥åդ᥽åɤФ Proc ֥Ȥ `&' ꤷϤ
ƤӽФ֥åΤ褦ưޤ̩ˤϰʲΰ㤤ޤ

  # ʤ
  (1..5).each { break }

  # ruby 1.6.7, 1.8 ʤ1.6.8 Ǥ㳰
  proc = Proc.new { break }
  (1..5).each(&proc)

  # ruby 1.6 ǤϡLocalJumpError
  # ruby 1.8 Ǥϡeach Ƽ¹
  proc = Proc.new { retry }
  (1..5).each(&proc)
  #=> retry from proc-closure (LocalJumpError)

ϡProc ֥ȤƤӽФ֥åȤƿ񤦺ݤ¤Ǥ
