Sha256: 8b93c5094456679b5ae68c07bf7a0f8eb2158347df5c81fb89870211507a578b
Contents?: true
Size: 852 Bytes
Versions: 2
Compression:
Stored size: 852 Bytes
Contents
require_relative 'maybe/base' require_relative 'maybe/just' require_relative 'maybe/nothing' require_relative 'maybe/list' # # Some monkey patching and constructor methods. # module Enumerable def to_maybe first.to_maybe end def maybe_map Monad::Maybe::List.new(map{ |x| yield(x) }) end end class Object def to_maybe Monad::Maybe::Just.new(self) end def maybe? false end def just? false end def nothing? false end end class NilClass def to_maybe Monad::Maybe::Nothing.instance end end module Monad module Maybe def self.return(obj) obj.to_maybe end end end def maybe(obj) Monad::Maybe.return(obj) end def just(o) Monad::Maybe::Just.new(o) end def nothing Monad::Maybe::Nothing.instance end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
monad-maybe-0.9.5 | lib/monad/maybe.rb |
monad-maybe-0.9.4 | lib/monad/maybe.rb |