Université Lyon 1
Arqus
Accueil  >>  Master  >>  Informatique  >>  M2 Intelligence artificielle  >>  Programmation fonctionnelle avancée
  • Domaine : Masters du domaine SCIENCES ET TECHNOLOGIES
  • Diplôme : Master
  • Mention : Informatique
  • Parcours : M2 Intelligence artificielle
  • Unité d'enseignement : Programmation fonctionnelle avancée
Nombre de crédits de l'UE : 3
Code APOGEE : INF1214M
UE Libre pour ce parcours
UE valable pour le semestre 1 de ce parcours
    Responsabilité de l'UE :
URBAIN XAVIER
 xavier.urbainuniv-lyon1.fr
    Type d'enseignement
Nb heures *
Cours Magistraux (CM)
9 h
Travaux Dirigés (TD)
9 h
Travaux Pratiques (TP)
12 h
Durée de projet en autonomie (PRJ)
0 h
Durée du stage
0 h
Effectif Cours magistraux (CM)
210 étudiants
Effectif Travaux dirigés (TD)
35 étudiants
Effectif Travaux pratiques (TP)
18 étudiants

* Ces horaires sont donnés à titre indicatif.

    Compétences attestées (transversales, spécifiques) :
Non rédigé
    Programme de l'UE / Thématiques abordées :
Le cours de programmation fonctionnelle avancée s'intéresse tout d'abord à la notion de persistence des données : il présente et motive l'utilisation de structures de données persistantes et efficaces dont l'implantation est simple et naturelle dans un langage fonctionnel typé : arbres, dictionnaires, arbres de préfixes, etc.

Il est important de savoir adapter ses structures et son style au problème qu'on cherche à résoudre et, le purisme n'étant pas toujours bienvenu, le cours s'intéresse dans un deuxième temps à l'utilisation, dans un développement majoritairement fonctionnel, de traits impératifs permettant d'optimiser temps et ou place mémoire, notamment au travers du concept de hash-consing.  Il se poursuit enfin sur l'étude des notions de clôtures, continuation (asynchrones) et monades.

Plan :
- Persistence et garbage-collection
- Zippers, arbres, dictionnaires, tries
- Union-find et unification
- Traits impératifs hash-consing
- Continuations et monades
Date de la dernière mise-à-jour : 30/11/2022
SELECT MEN_ID, `MEN_DIP_ABREVIATION`, `MEN_TITLE`, `PAR_TITLE`, `PAR_ID` FROM parcours INNER JOIN ue_parcours ON PAR_ID_FK=PAR_ID INNER JOIN mention ON MEN_ID = PAR_MENTION_FK WHERE PAR_ACTIVATE = 0 AND UE_ID_FK='26125' ORDER BY `MEN_DIP_ABREVIATION`, `MEN_TITLE`, `PAR_TITLE`