Class: Obfusk::Monads::Maybe
Class Method Summary
collapse
included, #plus
#>>, included
Methods included from ADT
#<=>, #==, #__adt_ctor__, #__adt_ctor_keys__, #__adt_ctor_name__, #__adt_data__, #_compare_data, #_eq_data, #clone, #eql?, included, #initialize, #inspect, #match, #to_s
Class Method Details
.bind_pass(m, &b) ⇒ Object
42
43
44
45
|
# File 'lib/obfusk/monads.rb', line 42
def self.bind_pass(m, &b)
m.match Nothing: -> (_) { Nothing() },
Just: -> (x) { b[x.value] }
end
|
.lazy_plus(m, k) ⇒ Object
49
50
51
52
|
# File 'lib/obfusk/monads.rb', line 49
def self.lazy_plus(m, k)
m.match Nothing: -> (_) { k._ },
Just: -> (_) { m }
end
|
.mreturn(x) ⇒ Object
39
40
41
|
# File 'lib/obfusk/monads.rb', line 39
def self.mreturn(x)
Just(x)
end
|
.zero ⇒ Object
46
47
48
|
# File 'lib/obfusk/monads.rb', line 46
def self.zero
Nothing()
end
|