07 – Arbres

  1. Introduction
  2. Induction
  3. Arbres binaires
  • TD n° 4 : Récursivité terminale (exercices 1 à 5)
  • TP n° 5 : Arbres

Pour la rentrée :

  • Terminer le TP n°5 et comparer avec le corrigé.
  • Relire le cours sur les arbres.
  • Préparer le TD n°5 sur les arbres.
  • Préparer le DM n°3.

06 – Fonctions sur les listes

  1. Concaténation
  2. Miroir d’une liste
  3. La fonctionnelle List.map
  • Correction du DM n°2 et calculs de complexité
  • TP n°5 : Diviser pour régner

Pour mercredi (DS n°1 de 15h à 17h, salles 254-255) :

  • En plus des révisions générales, bien réviser le tri insertion et sa complexité et l’exponentiation rapide (TP n°5, partie II).
  • Lire et bien comprendre le corrigé du DM n°2.

Pour la semaine prochaine :

  • Lire le cours sur la récursivité terminale
  • Terminer le TP n°5 jusqu’au tri fusion (au moins).
  • Préparer le TD n°4.

05 – Rappels de complexité et listes

  1. Rappels de complexité
  2. Quelques fonctions simples sur les listes
  • TD n°3 : Listes (exercices 1 à 5)
  • TP n°4 : Listes (suite et fin) et début du DM n°2

Pour la semaine prochaine :

  • Chercher le DM n°2.
  • Vous pouvez également terminer la feuille de TD n°3 et comparer avec le corrigé.

04 – Filtrage et listes

  1. Filtrage de motifs (support)
  2. La construction match with
  3. Gardes
  4. Listes en Caml
  5. Structure de liste chaînée
  6. Implémentation en Caml
  7. Filtrage sur les listes
  • TD n°2 (exercices 7, 8 et 9)
  • TP n°4 – Listes

Pour la semaine prochaine

  • Continuer le TP n°4 sur les listes et terminer le TD n°2 avec le corrigé.

03 – Récursivité (suite)

  1. Notion de pile d’appel
  2. Fonctions mutuellement récursives
  3. Terminaison d’une fonction récursive
  4. Exceptions
  5. Spécification d’une fonction
  6. Correction d’une fonction récursive
  • TD n°2 (exercices 1 à 6)
  • TP n°3 – Types sommes

Pour la semaine prochaine :

  • Terminer le TP n°3.
  • Chercher les exercices 7, 8 et 9 du TD n°2.

02 – Fonctions et récursivité

  1. Polymorphisme
  2. Application de fonctions
  3. Fonctions d’ordre supérieur
  4. Fonctions de plusieurs variables et curryfication
  5. Récursivité
  • TD n°1 (exercices 1 à 5)
  • TP n°2 – Fonctions et récursivité

Pour la rentrée :

  • Terminer le TP n°2 et étudier le corrigé.
  • Préparer le DM n°1.
  • Bien revoir le cours, le TP n°1 et le TD n°1 car il y aura une petite interrogation.

01 – À la découverte de Caml

  1. Expressions et évaluation
  2. Types
  3. Variables et liaisons
  4. Fonctions
  5. Expressions conditionnelles
  • TP n°1 – À la découverte de Caml

Pour la semaine prochaine :

  • Installer Ocaml sur votre machine (voir ici).
  • Terminer le TP n°1 ; faire également les exercices est plus que vivement conseillé.
  • Préparer l’exercice n°7 du TP n°1 à l’écrit pour le TD de la semaine prochaine.

Installer OCaml sur sa machine

Il est plus que vivement conseillé d’installer OCaml sur sa machine personnelle afin de pouvoir travailler chez soi, reprendre les TP, et vérifier ses programmes.

Si vous êtes sous Windows ou Mac OS, une bonne solution est d’utiliser MacCaml ou WinCaml qui intègrent un IDE. Pour Mac OS, CamlX fonctionne aussi très bien. Pour Linux, on peut installer JavaCaml.

Sous Windows, si vous avez aimé l’environnement du lycée, vous pouvez aller voir ici.

Sinon, vous pouvez toujours puiser à la source, ou mieux, en utilisant Opam. Comme IDE, on peut utiliser le module OcaIDE  pour Eclipse, installer Emacs avec le mode Tuareg (comme au lycée). Cette dernière solution fonctionne bien sous Mac OS et surtout sur Linux (voir ici pour Ubuntu).

Si vous n’y arrivez pas,en attendant, vous pouvez utiliser OCaml en ligne mais ce n’est pas aussi pratique.

Si vous n’avez pas peur de compiler vous-même votre propre OCaml, je vous conseille alors plutôt l’extension d’Arthur Charguéraud qui produit des messages d’erreurs bien plus clairs (c’est celle que nous avons au lycée). Il faut compiler les sources disponibles ici puis utiliser :

ocaml -easy-type-errors

Si vous rencontrez des difficultés pour installer OCaml sur vos machines, n’hésitez pas à nous demander de l’aide.