26. Fukuoka Ruby Award
Fiberで資源を節約
window=Fiber.new{i=0
!
buf=Array.new(SIZE)
loop{r=Fiber.yield(buf)
if r==0 then i=0
else
buf[i]= サンプリング値*窓関数
i+=1
end
} }
27. Fukuoka Ruby Award
Rubyのクロージャで
窓関数をメモ化
2回目からは計算しない!
hamming=->i{m={}
m[i]||=(0.54-0.46*cos(2*PI*i/N-1))}