2017-08-15から1日間の記事一覧

みんな大好き FizzBuzz(Ruby, Python)

外部イテレータ FizzBuzz。 a = ["Fizz", "Buzz", "FizzBuzz"] h = {0=>a[2], 3=>a[0], 6=>a[0], 9=>a[0], 12=>a[0], 5=>a[1], 10=>a[1]} g = Enumerator.new do |y| loop.with_index(1) do |_, i| y << (h[i % 15] || i.to_s) end end p g.take(20) #=>["1"…

Ruby のブロックはオブジェクト

これ、タイトルは釣りだと思うのだけれど、一応。Ruby のブロックはもちろんオブジェクトです。Proc オブジェクトとして持ち運ぶことができます。例えば def hoge(&bk) p bk bk.call end hoge do puts "fuga" end というコードがあります(むっちゃテキトー…