Programmation Fonctionnelle : Scheme
Jean-Paul Roy, Janvier-Avril 2006
Partie 1, Fondamentaux
1. Primitives (entiers, rationnels, réels, complexes, objets) 44
2. Fonctions : define et lambda 45
3. Conditions : if, cond et connecteurs logiques 45
4. Variables locales : let et let* 46
5. Itératif et récursif 47
6. Obtenir la trace d’une fonction 49
7. Un aperçu du style CPS 49
8. Listes : constructeur, accesseur, reconnaisseur 50
9. Listes : représentation 51
10. Récurrence sur les listes 51
11. Corrections d’exercices en Scheme 53
(inverser une liste, exponentiation modulaire, primalité, formes spéciales)
Partie 11, Intermediaire : Les Listes
1. Primitives (listes, A-listes, filtrage, complexes, citations) 56
2. Fonctions, ordre normal et ordre applicatif 57
3. Procédures d’ordre supérieur 57
4. Quelques fonctions sur les listes (map, filtrage, tri-fusion, exercices) 58
5. Les A-listes et le filtrage avancé 61
6. Exercices (filtrage, algorithme sur les ensembles) 62
7. Pour la culture : questions de cours (Algorithme de Wang, Peano, Eliza) 64
Partie 111, Intermediaire : Les Arbres
1. Définir des arbres binaires d’expression 66
2. Algorithme élémentaire sur les arbres (hauteur, nombre de nœuds, arboriser) 66
3. Evaluation d’un arbre binaire d’expression 68
4. Principes d’un simplificateur formel 68
5. La dérivation symbolique 69
6. Une introduction à la compilation des arbres 70
7. La curryfication 74
8. Quelques développements 74
Partie 1V, Intermediaire : Dessin
1. Le principe (commandes de la tortue, graphisme polaire et cartésien) 75
2. Entrainement à l’utilisation des nouvelles formes spéciales (do, begin…) 76
3. Graphisme de base (rosace et spirale, degradés) 76
4. Traceur de courbes paramétriques 77
5. Intégration d’un élément d’arc le long d’une courbe 78
6. Une introduction aux fractales 78
7. Arbres fractals 80
Philippe Giabbanelli
Partie V, Avance
1. Primitives indispensables (style impératif, tableaux, entrée/sortie et ports) 81
2. Fonctions d’arité variable 82
3. Programmation impérative 84
4. Valeur d’une λ-expression et fermeture 85
5. Construction de générateurs 85
6. Les mémo-fonctions, vers une programmation dans le style objet 87
7. Tableaux ou vecteurs, algorithme du drapeau hollandais (tri à 3 valeurs) 89
8. Définir des fonctions locales récursives par letrec 90
9. Modification impérative des pointeurs 91
10. Structures circulaires 93
11. Les entrées-sorties 95
12. Lecture et écriture dans un fichier disque 96
13. Utiliser le système d’exploitation (OS) 98
14. Aller chercher des informations automatiquement sur Internet 98
Partie VI, Specialise : Les Macros
1. Le principe (syntaxe, sémantique, quasiquote) 102
2. define-macro 103
3. Problèmes d’hygiène dans une substitution textuelle 105
4. Les macros R5RS : define-syntax 106
Philippe Giabbanelli
« Et s'il y a 10000000 solutions et
qu'on s'intéresse seulement à la
3ème ? Mais ceci ne perturbe pas
certains, qui veulent quand même
devenir informaticiens et gérer
les ordinateurs de la Défense
Nationale. Tous aux abris ! »
« Je ne vous cacherai pas que l'ensemble est *très* décevant.
Soit les notes du partiel étaient trop fortes et cela a contribué à
démotiver certains pour Scheme (ok l'an prochain le partiel
sera un peu plus serré), soit les notes du semestre 1 l'ont fait à
la place du partiel, à vous de décider. Il reste que 25 étudiants
environ sont au niveau en ce qui me concerne, et c'est peu pour
le travail bien plus approfondi qui sera fait en L3 ! »
« Comment devenir informaticien si l'on n'est même pas
ca
p
able de véri
f
ier les t
yp
es des ob
j
ets
q
u'on mani
p
ule ??? »
1 / 2 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 !