Re: affichage de liste

pbrisset@eis.enac.dgac.fr
Thu, 22 Feb 1996 12:45:36 +0100

From: pbrisset@eis.enac.dgac.fr
Message-Id: <199602221145.MAA28980@concorde.inria.fr>
Date: Thu, 22 Feb 1996 12:45:36 +0100
To: caml-list@margaux.inria.fr
Subject: Re: affichage de liste

> let rec integer_interval n m =
> if m < n then []
> else n :: ( integer_interval (n+1) m);;
>
> ou de sa version imperative
>
> let intervalle_entier n m =
> let accu= ref [] in
> for i =m downto n do
> accu := i :: !accu done;
> !accu ;;
>
> (evidemment, j'entend d'ici les remarques : la premiere version est bien
> plus claire et la deuxieme plus rapide et les reponses "c'est meme pas vrai
> et puis on est dans les annees 90" ....)
> la n'est pas la question (ceci dit si vous voulez reagir...)

Et avec le récurseur du système T de Gödel (ca fait riche,
n'est-ce-pas), c'est pas plus joli ?

#let rec recurseur z f = function
0 -> z
| n -> f (n-1) (recurseur z f (n-1));;
recurseur : 'a -> (int -> 'a -> 'a) -> int -> 'a = <fun>

#let intervalle n m = recurseur [] (fun k reste -> (m-k)::reste) (m-n+1);;
intervalle : int -> int -> int list = <fun>

#intervalle 10 20;;
- : int list = [10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20]

> Luc ALBERT
> prof prepa Lycee Charlemagne

J'ai malheureusement peur que les élèves ne soient pas très sensibles
à cette esthétique...

--Pascal Brisset