Programmation fonctionnelle — L3 info, M1 Linguistique Info, L2 Math info
Introduction à la programmation fonctionnelle et au langage
Objective Caml.
Modalités de contrôle des connaissances
- 1re session: 1/3 contrôle continu + 2/3 examen
- 2e session: Max(examen, 1/3 contrôle continu + 2/3 examen)
Cours
1. 22 septembre 2009 - Chapitre 1 : Premiers pas
Définition de valeurs, laison globale et locale, fonctions, curryfication, polymorphisme.
Exemples du premier cours
2. 29 septembre 2009 - Chapitre 1, suite : Effets de bord, séquencement et type unit, fonctions récursives + Chapitre 2 : enregistrements listes et types sommes
Types produits, types sommes, filtrage, motifs, listes
et arbres.
3. 6 octobre 2009 - Chapitre 2, suite : enregistrements, listes et filtrage
Exemples du chapitre 2
4. 13 octobre 2009 - Chapitre 2, suite : Types sommes
4. 20 octobre 2008 - Chapitre 2, fin - Chapitre 3 : Exceptions
Exemples du chapitre 3
5. 27 octobre 2009 - Chapitre 3, fin
6. 3 novembre 2009 - Chapitre 4 : Traits impératifs d'OCaml
Exemples du chapitre 4
7. 10 novembre 2009 - Chapitre 4, suite
8. 17 novembre 2009 - Chapitre 5 : Compilation séparée, modules, foncteurs
Poly du cours
9. 21 novembre 2009 - Chapitre 6 : Structures de données et algorithmes
Retour sur les listes et les arbres,
itérateurs, tris,
piles, files, graphes,
tables d'association.
Exemples du chapitre 6
10. 1er décembre 2009 - Chapitre 6 : suite
11. 8 décembre 2009 - Chapitre 7 : Extensions du langage
Labels et variants polymorphes.
Chapitre 7
12. 15 décembre 2009 - Chapitre 8 : Objets
Chapitre 8
TP
La page des TP est ici.
Projet
Soutenances de projet le mardi 12 janvier Inscrivez-vous à l'horaire de votre choix au secrétariat de l'UFR d'informatique à partir de mardi 5.
Le projet est à rendre ici avant le 11 à 23h59.
Vous devez d'abord vous « inscrire » au cours Programmation fonctionnelle.
Comme beaucoup d'entre vous l'ont remarqué, l'algorithme de création du labyrinthe est très naïf et peu efficace. Évidemment vous pouvez proposer toute amélioration (dans la partie libre) et faire des test de performances.
Qqs petites erreurs d'énoncé : la fonction color_cell n'a pas besoin du paramètre laby alors quie la fonction solve oui...
Le contrôle continu est un projet à faire en groupe de 2
(maximum non négociable).
Le sujet est ici.
Bibliographie et liens
- Xavier Leroy et al. The Objective Caml system : documentation and user's manual
manuel en ligne (à toujours avoir sous la main)
- Page de OCaml à l'INRIA
- Emmanuel Chailloux, Pascal Manoury et Bruno Pagano. Développement d'Applications avec Objective Caml.
O'Reilly, 2000
disponible en ligne
- Guy Cousineau et Michel Mauny. Approche fonctionnelle de la programmation.
Dunod, 1995
(cf lien1
et lien2).
- Pierre Weis et Xavier Leroy. Le langage Caml
Dunod, 1999.
- Catherine Dubois et Valérie Ménissier-Morain. Apprentissage de la programmation avec OCaml. Hermès, 2004
(cf lien).
- Louis Gacogne. Programmation par l'exemple en Caml. Ellipse, 2004
(cf lien).
- Philippe Narbel. Programmation fonctionnelle, générique et objet : Une introduction avec le langage OCaml. Vuibert, 2005
(cf lien).