Xtalでは関数定義と似たような形でfiberが生成でき、関数呼び出しの形で実行が出来ます。
fib : fiber{
yield 1;
yield 2;
yield 3;
}
println(fib()); // 1
println(fib()); // 2
println(fib()); // 3
また、fiberはイテレータでもあるので、ブロックの適用、またはイテレータが持つメソッドの呼び出しが出来ます。
fib : fiber{
yield 1;
yield 2;
yield 3;
}
fib{ |v|
println(v);
}