4.18.4. Resumable functions

Callcc můžeme využít k vytváření „obnovitelných/přerušitelných“ funkcí. Následující funkce vrátí hodnotu 1. Když ji obnovíme a vrátí hodnotu 2.

def resumable
    callcc do |continuation|
        $resume_point = continuation
        return 1
    end
    return 2
end

x = resumable
puts "Again, X = #{x}"
$resume_point.call if x != 2

Při spuštění vytiskne:

Again, X = 1
Again, X = 2
Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .