CSI 3125, Scheme, page 1
Programmation fonctionnelle
Plan:
Lisp
Un Resumé du Scheme
Une session Scheme
Scheme:
Structures de données simples
Structures de données composées
Évaluation de fonctions
Construction de listes et accès aux éléments
Expressions fonctionnelles et définition de fonctions
contrôle
Fonctions de haut niveau
CSI 3125, Scheme, page 2
Lisp
La programmation fonctionnelle a commencé vers
la fin des années 1950 (Veuillez relire la section
2.4). Plusieurs dialectes, Lisp 1.5 (1960), Scheme
(1975), Common Lisp (1985)…[LISP = LISt Processor]
[Il y a aussi d’autre langages fonctionnels: Hope,
ML, Miranda, Haskell.]
Plusieurs langages fonctionnels (dont Lisp) ont
comme fondation mathématique le -calcul
(lambda-calcul), un système qui permet aux
fonctions d’être les valeurs d’une expression.
CSI 3125, Scheme, page 3
Lisp (2)
Mécanismes de control fondamentaux:
Application de fonctions
Composition de fonctions
Instructions conditionnelles
récursivité
Les structures de données sont simples:
listes,
atomes (symboles et nombres).
CSI 3125, Scheme, page 4
Les programmes et données sont exprimés à l’aide de la
même syntaxe:
L’application de fonctions et les instructions
conditionnelles sont écrites comme des listes, en
parenthèse, avec le nom de l’instruction comme préfixe.
Le programme et les données sont distinguées selon le
contexte.
Cette uniformité des données et du programme permettent
une grande flexibilité et expressivité:
Les programmes peuvent être manipulés comme des
données.
Un interpréteur de LISP d’ une page en LISP a été à la base
de la première implémentation en bootstrapping d’un
langage de programmation (une technique très puissante)
Lisp (3)
CSI 3125, Scheme, page 5
5 fonctions primitives:
cons construit une liste,
car la tête d’une liste,
cdr la queue d’une liste,
eq Égalité d’atomes (Booléenne),
atom Vérifie si une atome (Booléenne);
Deux autres opérations essentielles:
L’évaluation d’expressions,
Appliquer une fonction aux paramètres (déjà
évalués)
Lisp (4)
1 / 48 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !