Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
* Re:  affichage de liste
@ 1996-02-22 11:45 pbrisset
  0 siblings, 0 replies; 4+ messages in thread
From: pbrisset @ 1996-02-22 11:45 UTC (permalink / raw)
  To: caml-list; +Cc: pbrisset

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1162 bytes --]


> 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





^ permalink raw reply	[flat|nested] 4+ messages in thread
* affichage de liste
@ 1996-02-21 22:31 Luc ALBERT
  1996-02-22 10:37 ` Pierre Weis
  1996-02-22 11:22 ` Michel Mauny
  0 siblings, 2 replies; 4+ messages in thread
From: Luc ALBERT @ 1996-02-21 22:31 UTC (permalink / raw)
  To: caml-list


Bonjour voici une question suite a un echange mail avec P Dumas (inria) :
je cree avec caml une liste d'entiers assez longue par exemple a l'aide de
la fonction :

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...)
quand je les lance entre 1 et 1000 je n'obtiens que le debut de la liste
(les 100  premiers termes
sont affiches) : y-a-t-il une limite a l'affichage d'une liste ?
merci
**************************
Luc ALBERT
prof prepa Lycee Charlemagne
Paris 04
**************************

PS : existe-t- il un style latex2e pour une belle inclusion de  programmes
caml ? (avec des mots cles
en gras etc ...)

POOR ENGLISH VERSION
 A  question about lists printing. Here is the code of two CAML functions

let intervalle_entier n m =
         let accu= ref [] in
                for i =m downto n do
                accu := i :: !accu done;
        !accu ;;
 or the recursive version
let rec integer_interval n m =
  if m < n then []
  else n :: ( integer_interval (n+1) m);;

the matter is not the comparison between the two versions of the function
but deals with the printing of the result.
If one executes these functions with arguments n=1 and m=1000 for instance,
only the beginning of the
list is printed (the first 100 terms I think). Is there a limit to output-
printing ?
Thanks

**************************
Luc ALBERT
Teacher at Lycee Charlemagne
Paris  (France ! yeah)
**************************
PS: is there a latex2e style to include in an esthetic way caml programs in
documents ? (with bold-faced key words, smart indentation etc ...)







^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1996-02-22 12:12 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-02-22 11:45 affichage de liste pbrisset
  -- strict thread matches above, loose matches on Subject: below --
1996-02-21 22:31 Luc ALBERT
1996-02-22 10:37 ` Pierre Weis
1996-02-22 11:22 ` Michel Mauny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox