2007-12-26から1日間の記事一覧

Listモナド

文字列を展開するメソッド2つ: def expander( str, reg1) return [str] unless str =~ reg1 r = [$1,$2,$3] yield(r[1]).inject([]) {|x,y| x << r[0]+y+r[2]} # 複数の展開対象があるかも. # 展開対象が無くなるまで再帰させる? end def expandCharClass…

1.9.0

リリースされてるのか.アーリーアダプターではないので見送り.

Maybeモナド

http://moonbase.rydia.net/mental/writings/programming/monads-in-ruby/00introduction.htmlからほぼそのままコピペ.テストコードはふつケルから. class Maybe def Maybe::unit( val ); new( true, val ); end def Maybe::nothing(); new( false, nil );…