Skip to content

Instantly share code, notes, and snippets.

@xtrator
Created January 21, 2021 16:34
Show Gist options
  • Save xtrator/12b205595427e9853f4293902e059d28 to your computer and use it in GitHub Desktop.
Save xtrator/12b205595427e9853f4293902e059d28 to your computer and use it in GitHub Desktop.
module RubyBadgeNumbers
# Your code goes here...
class Zero
attr_reader :pred
def initialize(pred = nil)
@succ = nil
@pred = pred
end
def succ
@succ ||= PositiveNumber.new(self)
end
def +(number)
res = self
until number.pred.nil?
number = number.pred
res = res.succ
end
res
end
def -(number)
res = self
until number.pred.nil?
number = number.pred
res = res.pred
end
res
end
end
class PositiveNumber < Zero
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment