Function object
In Ruby, several objects can be considered function objects, in particular Method and Proc objects. Ruby also has two kinds of objects that can be thought of as semi-function objects: UnboundMethod and block. UnboundMethods must first be bound to an object (thus becoming a Method) before they can be used as a function object. Blocks can be called like function objects, but to be used in any other capacity as an object (e.g. passed as an argument) they must first be converted to a Proc. More recently, symbols (accessed via the literal unary indicator codice_35) can also be converted to codice_36s. Using Ruby's unary codice_37 operator—equivalent to calling codice_38 on an object, and assuming that method exists—the Ruby Extensions Project created a simple hack.
Pokémon Ruby and Sapphire
The basic mechanics of "Ruby" and "Sapphire" are largely the same as their predecessors'. As with all "Pokémon" games for hand-held consoles, gameplay is in third-person, overhead perspective and consists of three basic screens: a field map, in which the player navigates the main character; a battle screen; and the menu, in which the player configures their party, items, or gameplay settings. The player begins the game with one Pokémon, and can capture more using Poké Balls. The player can also use their Pokémon to battle other Pokémon. When the player encounters a wild Pokémon or is challenged by a trainer to a battle, the screen switches to a turn-based battle screen where the Pokémon fight. During battle, the player may fight, use an item, switch their active Pokémon, or flee (the last is not an option in battles against trainers). All Pokémon have hit points (HP); when a Pokémon's HP is reduced to zero, it faints and cannot battle until it is revived. If the player's Pokémon defeats the opposing Pokémon (causes it to faint), it receives experience points. After accumulating enough experience points, it may level up; most Pokémon evolve into a new species of Pokémon when they reach a certain level.