2008-12-01から1ヶ月間の記事一覧

Proc#iterateてのを考えた.

Haskellのiterateにインスパイアされて. class Proc def iterate(init) if block_given? loop { yield(init) init = call(init) } else to_enum(:iterate, init) end end end p proc {|x| x + 1 }.iterate(0).take(10) # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]…

変な棋譜みつけた

yowaさんの日記で変な棋譜を見つけた. 竜王戦スレ見てたら「今迄で一番噴いたプロの棋譜」として紹介されてた棋譜。 羽生善治 vs 島朗 (1987/08/17 新人王戦) - 将棋の棋譜でーたべーす 40手目に角交換した後、互いに相手陣に角を打ち合う。その直後、予想…

to_procで生成したProcにブロックが渡されない?

p :select.to_proc.call([1,2,3]) {|x| x.odd? } # => #<Enumerable::Enumerator:0x574cc> な,なんだってー! class Symbol def to_proc proc {|obj, *args, &block| obj.send(self, *args, &block) } end end p :select.to_proc.call([1,2,3]) {|x| x.odd? } # => [1, 3] ブロックがブロッ</enumerable::enumerator:0x574cc>…

readlineが動かない

readlineがなくて不便なので,http://practical-scheme.net/gauche/packages-j.htmlにあるreadlineを試してみた.が,使い方が解らない.サンプルらしきものを試したら動いたには動いたが,挙動が怪しい.普通にインタプリタから使う方法も解らなかったで,…