Exponential objectIn mathematics, specifically in , an exponential object or map object is the generalization of a function space in set theory. with all and exponential objects are called . Categories (such as of ) without adjoined products may still have an exponential law. Let be a category, let and be of , and let have all with .
EvalIn some programming languages, eval , short for the English evaluate, is a function which evaluates a string as though it were an expression in the language, and returns a result; in others, it executes multiple lines of code as though they had been included instead of the line including the eval. The input to eval is not necessarily a string; it may be structured representation of code, such as an abstract syntax tree (like Lisp forms), or of special type such as code (as in Python).
Cartesian closed categoryIn , a is Cartesian closed if, roughly speaking, any morphism defined on a of two can be naturally identified with a morphism defined on one of the factors. These categories are particularly important in mathematical logic and the theory of programming, in that their internal language is the simply typed lambda calculus. They are generalized by , whose internal language, linear type systems, are suitable for both quantum and classical computation.
Closed monoidal categoryIn mathematics, especially in , a closed monoidal category (or a monoidal closed category) is a that is both a and a in such a way that the structures are compatible. A classic example is the , Set, where the monoidal product of sets and is the usual cartesian product , and the internal Hom is the set of functions from to . A non- example is the , K-Vect, over a field . Here the monoidal product is the usual tensor product of vector spaces, and the internal Hom is the vector space of linear maps from one vector space to another.
CurryingIn mathematics and computer science, currying is the technique of translating the evaluation of a function that takes multiple arguments into evaluating a sequence of functions, each with a single argument. For example, currying a function that takes three arguments creates a nested unary function , so that the code gives the same value as the code or called in sequence, In a more mathematical language, a function that takes two arguments, one from and one from , and produces outputs in by currying is translated into a function that takes a single argument from and produces as outputs functions from to This is a natural one-to-one correspondence between these two types of functions, so that the sets together with functions between them form a .
Function spaceIn mathematics, a function space is a set of functions between two fixed sets. Often, the domain and/or codomain will have additional structure which is inherited by the function space. For example, the set of functions from any set into a vector space has a natural vector space structure given by pointwise addition and scalar multiplication. In other scenarios, the function space might inherit a topological or metric structure, hence the name function space. Vector space#Function spaces Let be a vector space over a field and let be any set.
Lambda calculusLambda calculus (also written as λ-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation that can be used to simulate any Turing machine. It was introduced by the mathematician Alonzo Church in the 1930s as part of his research into the foundations of mathematics. Lambda calculus consists of constructing lambda terms and performing reduction operations on them.