In functional programming, a monad transformer is a type constructor which takes a monad as an argument and returns a monad as a result. Monad transformers can be used to compose features encapsulated by monads - such as state, exception handling, and I/O - in a modular way.
more from Wikipedia
Binary operation
In mathematics, a binary operation is a calculation involving two operands (an operation whose arity is two). Examples include the familiar arithmetic operations of addition, subtraction, multiplication and division. Let A, B and C be three sets. Then a relation * from A X B --> C is a binary relation. This is a general binary relation. Usually, but not always, the case of binary relations defined on a single set is of interest.
more from Wikipedia
Operand
In mathematics, an operand is the object of a mathematical operation, a quantity on which an operation is performed.
more from Wikipedia
Functor
In category theory, a branch of mathematics, a functor is a special type of mapping between categories. Functors can be thought of as homomorphisms between categories, or morphisms when in the category of small categories. Functors were first considered in algebraic topology, where algebraic objects are associated to topological spaces, and algebraic homomorphisms are associated to continuous maps. Nowadays, functors are used throughout modern mathematics to relate various categories.
more from Wikipedia
Kan extension
Kan extensions are universal constructs in category theory, a branch of mathematics. They are closely related to adjoints, but are also related to limits and ends. They are named after Daniel M. Kan, who constructed certain (Kan) extensions using limits in 1960. An early use of (what is now known as) a Kan extension from 1956 was in homological algebra to compute derived functors.
more from Wikipedia
Data structure
In computer science, a data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently. Different kinds of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks. For example, B-trees are particularly well-suited for implementation of databases, while compiler implementations usually use hash tables to look up identifiers.
more from Wikipedia
Algorithmic efficiency
In computer science, efficiency is used to describe properties of an algorithm relating to how much of various types of resources it consumes. Algorithmic efficiency can be thought of as analogous to engineering productivity for a repeating or continuous process, where the goal is to reduce resource consumption, including time to completion, to some acceptable, optimal level.
more from Wikipedia
Nondeterministic algorithm
In computer science, a nondeterministic algorithm is an algorithm that can exhibit different behaviors on different runs, as opposed to a deterministic algorithm. There are several ways an algorithm may behave differently from run to run. A concurrent algorithm can perform differently on different runs due to a race condition. A probabalistic algorithm's behaviors depends on a random number generator.
more from Wikipedia