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