Version française
Home     About     Download     Resources     Contact us    
Browse thread
Re: affichage de liste
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: pbrisset@e...
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