Method: Cantor::AbsoluteSet#map

Defined in:
lib/cantor/absolute_set.rb

#mapAbsoluteSet



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/cantor/absolute_set.rb', line 99

def map
  mask = 0

  @universe.each do |value, n|
    unless @mask[n].zero?
      value = yield(value)

      if m = @universe.fetch(value, false)
        mask |= (1 << m)
      else
        raise "universe does not contain element #{value.inspect}"
      end
    end
  end

  copy(:mask => mask)
end