Programmation purement fonctionnelleEn informatique, la programmation purement fonctionnelle est un paradigme de programmation qui considère toutes les opérations comme l'évaluation de fonctions mathématiques. L'état et les objets immuables sont généralement modélisés à l'aide d'une logique temporelle, en tant que variables explicites représentant l'état du programme à chaque étape de son exécution : l'état d'une variable est transmis en tant que paramètre d'entrée d'une fonction de transformation d'état, qui renvoie l'état mis à jour en tant que partie de sa valeur de retour.
Programmation procéduraleEn informatique, la programmation procédurale est un paradigme qui se fonde sur le concept d'appel procédural. Une procédure, aussi appelée routine, sous-routine ou fonction (à ne pas confondre avec les fonctions de la programmation fonctionnelle reposant sur des fonctions mathématiques), contient simplement une série d'étapes à réaliser. N'importe quelle procédure peut être appelée à n'importe quelle étape de l'exécution du programme, y compris à l'intérieur d'autres procédures, voire dans la procédure elle-même (récursivité).
Lambda-calculLe lambda-calcul (ou λ-calcul) est un système formel inventé par Alonzo Church dans les années 1930, qui fonde les concepts de fonction et d'application. On y manipule des expressions appelées λ-expressions, où la lettre grecque λ est utilisée pour lier une variable. Par exemple, si M est une λ-expression, λx.M est aussi une λ-expression et représente la fonction qui à x associe M. Le λ-calcul a été le premier formalisme pour définir et caractériser les fonctions récursives : il a donc une grande importance dans la théorie de la calculabilité, à l'égal des machines de Turing et du modèle de Herbrand-Gödel.
Lambda liftingLambda lifting is a meta-process that restructures a computer program so that functions are defined independently of each other in a global scope. An individual "lift" transforms a local function into a global function. It is a two step process, consisting of; Eliminating free variables in the function by adding parameters. Moving functions from a restricted scope to broader or global scope. The term "lambda lifting" was first introduced by Thomas Johnsson around 1982 and was historically considered as a mechanism for implementing functional programming languages.
History of PythonPython (programming language) The programming language Python was conceived in the late 1980s, and its implementation was started in December 1989 by Guido van Rossum at CWI in the Netherlands as a successor to ABC capable of exception handling and interfacing with the Amoeba operating system. Van Rossum is Python's principal author, and his continuing central role in deciding the direction of Python is reflected in the title given to him by the Python community, Benevolent Dictator for Life (BDFL).
Type algébrique de donnéesUn type algébrique est une forme de type de données composite, qui combine les fonctionnalités des types produits (n‐uplets ou enregistrements) et des types sommes (union disjointe). Combinée à la récursivité, elle permet d’exprimer les données structurées telles que les listes et les arbres. Le type produit de deux types A et B est l’analogue en théorie des types du produit cartésien ensembliste et est noté A × B. C’est le type des couples dont la première composante est de type A et la seconde de type B.
Conditionnels contrefactuelsLes conditionnels contrefactuels (counterfactual conditionals en anglais) sont des propositions utilisées pour exprimer une situation hypothétique dans le passé et de leur conséquences imaginaires. Cette construction grammaticale est utilisée pour spéculer sur des situations qui n'ont pas réellement eu lieu, mais qui auraient pu se produire si les circonstances avaient été différentes. Le conditionnel contrefactuel se présente généralement sous la forme « Si A était le cas, alors B serait le cas ».
Dictionnairethumb|upright=1.2|Dictionnaire en latin constitué de plusieurs volumes, œuvre d'Egidio Forcellini (1771). Un dictionnaire est un ouvrage de référence contenant un ensemble de mots d’une langue ou d’un domaine d’activité généralement présentés par ordre alphabétique et fournissant pour chacun une définition, une explication ou une correspondance (synonyme, antonyme, cooccurrence, traduction, étymologie). Le présent article concerne les dictionnaires unilingues qui décrivent ou normalisent une langue.
Type dépendantEn Informatique et en Logique, un type dépendant est un type qui peut dépendre d'une valeur définie dans le langage typé. Les langages Agda et Gallina (de l'assistant de preuve Coq) sont des exemples de langages à type dépendant. Les types dépendants permettent par exemple de définir le type des listes à n éléments. Voici un exemple en Coq. Inductive Vect (A: Type): nat -> Type := | nil: Vect A 0 | cons (n: nat) (x: A) (t: Vect A n): Vect A (S n).
Implication (logique)En logique mathématique, l'implication est l'un des connecteurs binaires du langage du calcul des propositions, généralement représenté par le symbole « ⇒ » et se lisant « ... implique ... », « ... seulement si ... » ou, de façon équivalente, « si ..., alors ... » comme dans la phrase « s'il pleut, alors il y a des nuages ». L'implication admet des interprétations différentes selon les différents systèmes logiques (logique classique, modale, intuitionniste, etc.).
Typed lambda calculusA typed lambda calculus is a typed formalism that uses the lambda-symbol () to denote anonymous function abstraction. In this context, types are usually objects of a syntactic nature that are assigned to lambda terms; the exact nature of a type depends on the calculus considered (see kinds below). From a certain point of view, typed lambda calculi can be seen as refinements of the untyped lambda calculus, but from another point of view, they can also be considered the more fundamental theory and untyped lambda calculus a special case with only one type.
Ensembles disjointsvignette|Trois ensembles disjoints En mathématiques, deux ensembles sont dits disjoints s'ils n'ont pas d'éléments en commun. Par exemple, et sont deux ensembles disjoints. De manière formelle, deux ensembles A et B sont disjoints si leur intersection est l'ensemble vide, c'est-à-dire si (Dans le cas contraire, on dit que A et B « se rencontrent ».) Cette définition s'étend à une famille d'ensembles. Les ensembles d'une famille sont dits disjoints deux à deux ou mutuellement disjoints si deux ensembles quelconques de cette famille sont disjoints.