Skip to content

Instantly share code, notes, and snippets.

@xtrator
Created January 21, 2021 16:32
Show Gist options
  • Save xtrator/1e592700fe3f22161569c76c34127bd0 to your computer and use it in GitHub Desktop.
Save xtrator/1e592700fe3f22161569c76c34127bd0 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)
number.pred ? self.succ + number.pred : self
end
def -(number)
number.pred ? self.pred - number.pred : self
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