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

³ɽ饹Ǥ

[[unknown:Ȥ߹ߴؿ]] [[m:Kernel.#callcc]] { |cont| ... } θƤӽФ
ϡľξ(ѿåե졼) cont ˵
ƥ֥å¹Ԥޤcont ϡContinuation 饹Υ󥹥
󥹤ǡ[[m:Continuation#call]] ᥽åɤ¹Ԥ뤳
ȤǤĤǤ⵭֤³뤳ȤǤޤ

C  setjmp()/longjmp() 狼ͤ
  setjmp() == callcc {|c| }
  longjmp() == c.call
ȹͤС狼䤹Τޤ(callcc ϥå
ʤˤ⥸׽Ȥ㤤ޤ)

callcc() ϡ֥å֤ͤޤContinuation#call(args)
ƤӽФ줿Ȥ args ֤ޤ

:

  ʲϡContinuationˤ̵¥롼פ
  
  def LOOP
    c = nil
    yield callcc {|c| true}
    c.call(false)
  end
  
  LOOP {|v| p v}
  
  => true
     false
     false
     false
       :
       :

callcc Ȥϡcall-with-current-continuation άǤ
