ExtensionalityIn logic, extensionality, or extensional equality, refers to principles that judge objects to be equal if they have the same external properties. It stands in contrast to the concept of intensionality, which is concerned with whether the internal definitions of objects are the same. Consider the two functions f and g mapping from and to natural numbers, defined as follows: To find f(n), first add 5 to n, then multiply by 2. To find g(n), first multiply n by 2, then add 10.
Let expressionIn computer science, a "let" expression associates a function definition with a restricted scope. The "let" expression may also be defined in mathematics, where it associates a Boolean condition with a restricted scope. The "let" expression may be considered as a lambda abstraction applied to a value. Within mathematics, a let expression may also be considered as a conjunction of expressions, within an existential quantifier which restricts the scope of the variable.
Wolfram LanguageWolfram Language est un langage de calcul multi-paradigme général développé par la société Wolfram Research. Ce langage est utilisé pour le calcul symbolique, la programmation fonctionnelle et la programmation basée sur des règles et il peut utiliser des structures et des données arbitraires. Wolfram Language est un langage de calcul multi-paradigmes général développé par Wolfram Research. C'est également le langage de programmation de Mathematica (programme de calcul symbolique mathématique) et du Wolfram Programming Cloud.
Langage de programmation exotiqueUn langage de programmation exotique est un langage de programmation imaginé comme un test des limites de la création de langages de programmation, un exercice intellectuel ou encore une blague, sans aucune intention de créer un langage réellement utile. De tels langages sont souvent un passe-temps pour les hackers ou les programmeurs. L'adjectif « exotique » permet de distinguer ces langages de ceux communément utilisés dans l'industrie.
Continuité de ScottEn mathématiques pour l'informatique, étant donné deux ensembles partiellement ordonnés P et Q, une fonction f : P → Q entre eux est Scott-continue (du nom du mathématicien Dana Scott) si elle préserve tous les suprema dirigés, c'est-à-dire que pour chaque sous-ensemble orienté D de P avec supremum dans P, son a un supremum dans Q, et ce supremum est l'image du supremum de D, c'est-à-dire , où est la jointure dirigée.
Structure et interprétation des programmes informatiquesStructure et interprétation des programmes informatiques (Structure and Interpretation of Computer Programs, SICP) est un livre écrit par Harold Abelson, Gerald Jay Sussman et Julie Sussman. Le livre traite des principes et concepts de la programmation informatique, comme l’abstraction en programmation, l’, la récursivité, les interpréteurs et la programmation modulaire. Il est édité pour la première fois en 1985 par le MIT Press et est considéré comme un classique en informatique.
Function-level programmingIn computer science, function-level programming refers to one of the two contrasting programming paradigms identified by John Backus in his work on programs as mathematical objects, the other being value-level programming. In his 1977 Turing Award lecture, Backus set forth what he considered to be the need to switch to a different philosophy in programming language design: Programming languages appear to be in trouble. Each successive language incorporates, with a little cleaning up, all the features of its predecessors plus a few more.
Categorical abstract machineThe categorical abstract machine (CAM) is a model of computation for programs that preserves the abilities of applicative, functional, or compositional style. It is based on the techniques of applicative computing. The notion of the categorical abstract machine arose in the mid-1980s. It took its place in computer science as a kind of theory of computation for programmers, represented by and embedded into the combinatory logic. CAM is a transparent and sound mathematical representation for the languages of functional programming.
Partial applicationIn computer science, partial application (or partial function application) refers to the process of fixing a number of arguments to a function, producing another function of smaller arity. Given a function , we might fix (or 'bind') the first argument, producing a function of type . Evaluation of this function might be represented as . Note that the result of partial function application in this case is a function that takes two arguments. Partial application is sometimes incorrectly called currying, which is a related, but distinct concept.
Kappa calculusIn mathematical logic, , and computer science, kappa calculus is a formal system for defining first-order functions. Unlike lambda calculus, kappa calculus has no higher-order functions; its functions are not first class objects. Kappa-calculus can be regarded as "a reformulation of the first-order fragment of typed lambda calculus". Because its functions are not first-class objects, evaluation of kappa calculus expressions does not require closures. The definition below has been adapted from the diagrams on pages 205 and 207 of Hasegawa.