background preloader

Programmation fonctionnelle

Facebook Twitter

Refcaml. Introduction à la programmation fonctionnelle avec Haskell | Programmez! Dédaignée, pour ne pas dire méprisée en France, la programmation fonctionnelle n'en est pas moins un outil puissant dans l'arsenal du programmeur. Examinons quelques uns des ses atouts à travers un langage à la pointe du progrès : Haskell Haskell est le plus élégant, le plus beau, de tous les langages. L'affirmation est osée, et bien sûr, subjective. Et puis comment un langage informatique peut il être élégant ou beau ? Nous allons tenter de répondre à cette interrogation. Mais intéressons nous d'abord à une autre question: qu'est-ce qu'un langage informatique ?

Programmation fonctionnelle. Un article de Wikipédia, l'encyclopédie libre. Machine à états et effets secondaires[modifier | modifier le code] Programmation impérative et effets de bord[modifier | modifier le code] La programmation impérative s'appuie sur le modèle des machines à états (cf. aussi machine de Turing et Architecture de von Neumann), avec une mémoire centrale et des instructions qui modifient son état grâce à des affectations successives. On peut représenter un tel programme par une machine à états qui représente les états successifs de la mémoire.

Cela nécessite pour le programmeur de connaître à tout instant un modèle exact de l'état de la mémoire que le programme modifie. Programmation fonctionnelle[modifier | modifier le code] La programmation fonctionnelle s'affranchit de façon radicale des effets secondaires (ou effets de bord) en interdisant toute opération d'affectation. Transparence référentielle[modifier | modifier le code] Des fonctions passées en paramètre[modifier | modifier le code]

Lambda calculus. Mathematical-logic system based on functions Lambda calculus consists of constructing lambda terms and performing reduction operations on them. In the simplest form of lambda calculus, terms are built using only the following rules:[a] : A variable is a character or string representing a parameter.: A lambda abstraction is a function definition, taking as input the bound variable (between the λ and the punctum/dot .) and returning the body .: An application, applying a function to an argument . Both and are lambda terms. The reduction operations include: : α-conversion, renaming the bound variables in the expression. Variable names are not needed if using a universal lambda function, such as Iota and Jot, which can create any function behavior by calling it on itself in various combinations. Explanation and applications[edit] Lambda calculus may be untyped or typed.

History[edit] Origin of the λ symbol[edit] By the way, why did Church choose the notation “λ”? Informal description[edit] "). Le débat sur la programmation fonctionnelle en Python. L’écosystème Python est en ébullition depuis la 3.4 et asyncio, tout le monde se sent pousser des ailes de faire évoluer la stack. La 3.5 vient réintroduire le fameux opérateur % pour les bytes, sa disparition ayant fait bien chier tous les développeurs réseaux, on rajoute l’opérateur @ (qui ne fait rien, mais qui servira à numpy pour les opérations sur les matrices), il y a bien entendu le débat sur async/await et enfin le gros morceau : le type hinting. C’est une période formidable pour la communauté car il rappelle que Python, un langage plus vieux que Java, un langage qui est maintenant considéré comme main stream – utilisé par des sociétés corporate et l’éducation nationale – ne restera pas sur ses acquis et va continuer à se réinventer. Pour cette même raison, il existe un débat parallèle qui a lieu plutôt sur reddit, hackernews, la mailling list de Python-dev et Python-idea ou par PR github interposées sur des projets type pyrsistent.

La programmation fonctionnelle, c’est quoi ? La programmation fonctionnelle - Introduction et applications en Haskell à l'usage de l'étudiant et du développeur - Sciences à l'université - Editions Ellipses. Tutoriel : La programmation fonctionnelle. Programmation fonctionnelle. INFO421 : Programmation fonctionnelle — Wiki du LAMA (UMR 5127) Ce wiki est un complément de cours pour le cours « info-421 : programmation fonctionnelle ». La participation au wiki est fortement encouragée, et deviendra peut-être obligatoire... Pour pouvoir modifier les pages, inscrivez-vous (lien en haut à droite) pour obtenir un login et mot de passe.

(Utilisez votre vrai nom...) Je vous conseille d'aller voir ce guide pour vous familiariser avec les wikis. Exercice : si vous n'en avez pas, créez-vous un compte et essayez de modifier cette page (correction de fôtes d'aurtograffe, rajout de détails, mise en page, ...) Vous pouvez aussi utiliser la page de discussion pour ... discuter.

(Ou poser des questions, faire des commentaires etc.) Détails techniques Compléments de cours, TD et TP Installer Ocaml Si vous voulez installer OCaml sur votre ordinateur : Sous Linux : c'est la solution idéale. Contactez moi si vous avez des problèmes. Pour les exemples simples, vous pouvez aussi utiliser OCaml en ligne Références supplémentaires Cours TD et TP Introduction ou.