Class: Aqueductron::Monoid

Inherits:
Object
  • Object
show all
Defined in:
lib/aqueductron/monoid.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(zero, add_lambda) ⇒ Monoid

Returns a new instance of Monoid.



4
5
6
7
# File 'lib/aqueductron/monoid.rb', line 4

def initialize(zero, add_lambda)
  @zero = zero
  @append = add_lambda
end

Instance Attribute Details

#zeroObject (readonly)

Returns the value of attribute zero.



3
4
5
# File 'lib/aqueductron/monoid.rb', line 3

def zero
  @zero
end

Class Method Details

.concatObject

instances



13
14
15
# File 'lib/aqueductron/monoid.rb', line 13

def self.concat
  Monoid.new("", ->(a,b) {a + b})
end

.plusObject



16
17
18
# File 'lib/aqueductron/monoid.rb', line 16

def self.plus
  Monoid.new(0,  ->(a,b) {a + b})
end

Instance Method Details

#append(a, b) ⇒ Object



8
9
10
# File 'lib/aqueductron/monoid.rb', line 8

def append(a,b)
  @append.call(a,b)
end