callcc { |cont| ... } θƤӽФ
ϡľξ(ѿ͡åե졼) cont ˵
ƥ֥å¹Ԥޤcont ϡContinuation 饹Υ󥹥
󥹤ǡContinuation#call [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 άǤ