From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.6.10/8.6.6) id NAA27628 for caml-redistribution; Thu, 22 Feb 1996 13:12:20 +0100 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.6.10/8.6.6) with ESMTP id MAA27514 for ; Thu, 22 Feb 1996 12:45:42 +0100 From: pbrisset@eis.enac.dgac.fr Received: from margaux.inria.fr (margaux.inria.fr [128.93.8.2]) by concorde.inria.fr (8.7.1/8.7.1) with ESMTP id MAA28984 for ; Thu, 22 Feb 1996 12:45:42 +0100 (MET) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by margaux.inria.fr (8.6.10/8.6.6) with ESMTP id MAA25747 for ; Thu, 22 Feb 1996 12:45:41 +0100 Received: from apollo12.eis.enac.dgac.fr (apollo12.eis.enac.dgac.fr [192.70.3.82]) by concorde.inria.fr (8.7.1/8.7.1) with SMTP id MAA28980 for ; Thu, 22 Feb 1996 12:45:41 +0100 (MET) Message-Id: <199602221145.MAA28980@concorde.inria.fr> Received: from apoge.eis.enac.dgac.fr by apollo12.eis.enac.dgac.fr with SMTP (1.37.109.4/17.1) id AA07469; Thu, 22 Feb 96 12:45:37 +0100 Received: by apoge.eis.enac.dgac.fr (1.38.193.4/16.2) id AA01908; Thu, 22 Feb 1996 12:45:36 +0100 Date: Thu, 22 Feb 1996 12:45:36 +0100 To: caml-list@margaux.inria.fr Subject: Re: affichage de liste Cc: pbrisset@eis.enac.dgac.fr Sender: weis > 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