Functional programmingIn computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program. In functional programming, functions are treated as first-class citizens, meaning that they can be bound to names (including local identifiers), passed as arguments, and returned from other functions, just as any other data type can.
Ring systemA ring system is a disc or ring, orbiting an astronomical object, that is composed of solid material such as dust and moonlets, and is a common component of satellite systems around giant planets like Saturn. A ring system around a planet is also known as a planetary ring system. The most prominent and most famous planetary rings in the Solar System are those around Saturn, but the other three giant planets (Jupiter, Uranus, and Neptune) also have ring systems.
Rings of JupiterThe planet Jupiter has a system of faint planetary rings. The Jovian rings were the third ring system to be discovered in the Solar System, after those of Saturn and Uranus. The main ring was discovered in 1979 by the Voyager 1 space probe and the system was more thoroughly investigated in the 1990s by the Galileo orbiter. The main ring has also been observed by the Hubble Space Telescope and from Earth for several years. Ground-based observation of the rings requires the largest available telescopes.
Rings of SaturnThe rings of Saturn are the most extensive ring system of any planet in the Solar System. They consist of countless small particles, ranging in size from micrometers to meters, that orbit around Saturn. The ring particles are made almost entirely of water ice, with a trace component of rocky material. There is still no consensus as to their mechanism of formation. Although theoretical models indicated that the rings were likely to have formed early in the Solar System's history, newer data from Cassini suggested they formed relatively late.
Monad (functional programming)In functional programming, a monad is a structure that combines program fragments (functions) and wraps their return values in a type with additional computation. In addition to defining a wrapping monadic type, monads define two operators: one to wrap a value in the monad type, and another to compose together functions that output values of the monad type (these are known as monadic functions). General-purpose languages use monads to reduce boilerplate code needed for common operations (such as dealing with undefined values or fallible functions, or encapsulating bookkeeping code).