Rubyについて Part 17
■ このスレッドは過去ログ倉庫に格納されています
0697デフォルトの名無しさん
2005/11/17(木) 08:57:34callcc を使えばできなくはない。
$hash = {}
def open(fn)
fh = nil
if ctn = callcc { |c| c }
open_block(fn) do |fh|
$hash[fh] = []
ctn.call(nil) if $hash[fh][0] = callcc { |c| c }
end
ctn = $hash[fh][1]
$hash.delete(fh)
ctn.call(nil)
end
fh
end
def close(fh)
$hash[fh].call(nil)
end
これを一般化したものが添付ライブラリの generator 。
■ このスレッドは過去ログ倉庫に格納されています