Haskellに登場するらしいモナドを少し勉強してみる。よくわからないが、試しにMaybeモナドをRubyで書いてみた。どこか間違えていると思うが、コードは下記。 class Maybe def Maybe.wrap( value ) Maybe.new(value) end attr_accessor :value def initialize(value) @value = value end def pass if @value.nil? Maybe.new(nil) else yield @value end end end def div6(x) if x == 0 nil else 6 / x end end def inc(x) x + 1 end def normal_div6_inc(x) rv = div6(x) if rv inc(x) else nil end en