(define (make-annuaire) (let* ((N 23) ; nombre d'éléments du vecteur (un-annuaire (make-vector N '()))) (lambda message (case (car message) ((peupler) (let boucle () (display "Entrez nom et numéro : ") (let* ((le-nom (read)) (numero (read))) (if (not (string=? le-nom "")) (begin (vec!:ajouter le-nom numero un-annuaire) (boucle)))))) ; ((interrogation) (let* ((le-nom (cadr message)) (la-case (hash le-nom N)) (reponse (assoc le-nom (vector-ref un-annuaire la-case)))) (if reponse (cdr reponse) "Pas d'abonné au numéro demandé"))) ((donner) un-annuaire) ((afficher) (vector:for-each print un-annuaire))))))