Ruby (programming language)
Ruby has been described as a multi-paradigm programming language: it allows procedural programming (defining functions/variables outside classes makes them part of the root, 'self' Object), with object orientation (everything is an object) or functional programming (it has anonymous functions, closures, and continuations; statements all have values, and functions return the last evaluation). It has support for introspection, reflection and metaprogramming, as well as support for interpreter-based threads. Ruby features dynamic typing, and supports parametric polymorphism.
Ring (mathematics)
Let "C" be a category with finite products. Let pt denote a terminal object of "C" (an empty product). A ring object in "C" is an object "R" equipped with morphisms formula_261 (addition), formula_262 (multiplication), formula_263 (additive identity), formula_264 (additive inverse), and formula_265 (multiplicative identity) satisfying the usual ring axioms. Equivalently, a ring object is an object "R" equipped with a factorization of its functor of points formula_266 through the category of rings: formula_267.