Précédent Index Suivant

Utilitaires généraux

 

 
Dans un premier temps, nous définissons des fonctions utilitaires classiques (cadr, cddr... length, member... qui ont presque toutes été vues dans le présent ouvrage, celles qui n'ont pas été vues étant très faciles. Deux fonctions, deug-erreur et deug-map, demandent tout de même une explication.
 
Fonction deug-erreur
 
Nous avons défini la fonction deug-erreur pour personaliser les messages d'erreurs de deug-eval (ils commencent tous par deug-eval):
 

39   
;;; Signaler une erreur et abandonner l'évaluation. 
(define (deug-erreur fn message donnee) 
  (erreur 'deug-eval fn message donnee) )



 
Fonction deug-map
 
Nous avons défini une fonction deug-map (et non map) car, en Scheme, la fonction map opère sur un nombre quelconque de listes, la fonction appliquée étant une fonction n-aire (alors que nous l'avons toujours utilisée -- et nous l'utiliserons encore ainsi dans le présent logiciel -- avec une fonction unaire et une seule liste):
 

75   
;;; deug-map: (alpha -> beta) * LISTE[alpha] -> LISTE[beta] 
;;; (deug-map f L) rend la liste des valeurs de «f» appliquée aux termes  
;;; de la liste «L». 
(define (deug-map f L)
  (if (pair? L)
      (cons (f (car L)) (deug-map f (cdr L)))
      '() ) )



 


Auteur(s): titou@ufr-info-p6.jussieu.fr.Mainteneur de la page: titou@ufr-info-p6.jussieu.fr.

Précédent Index Suivant