Ruby

継続とかFiberとか

「継続」という用語を知った。なんとなく知ったつもりになっていたC#のイテレータの話とか、Fiberのこととかだいぶよく分かった。継続を使った非同期処理の簡単な記述とか、Rubyのあやしいcallcc、Ruby 1.9でサポートされたFiberのこととか。Fiberは勝手にコ…

夏休みの宿題の続き

先日の宿題のプログラムをもう少し短くしてみた。 ぼくの原案: def p2rp(i); return i.shift if i[0]=~/^\d/; a=i.shift; b=p2rp(i); c=p2rp(i); [b,c,a].flatten; endid:suikyoさんによる改良案: def x(i); (t=i.shift)=~/^\d/ ? t : [x(i),x(i),t].flatten…

夏休みの宿題 − ポーランド記法

夏休みの宿題 -- ポーランド記法 (Rubyist Magazine 0015号)すなおに書いてみたつもりです。ポーランド記法から逆ポーランド記法へ変換します。 def p2rp(i); return i.shift if i[0]=~/^\d/; a=i.shift; b=p2rp(i); c=p2rp(i); [b,c,a].flatten; end p p2rp…