stream

Choun-Tong LIEU (Choun-tong.Lieu@litp.ibp.fr)
Wed, 28 Feb 1996 10:38:10 +0100

Date: Wed, 28 Feb 1996 10:38:10 +0100
From: Choun-Tong LIEU <Choun-tong.Lieu@litp.ibp.fr>
Message-Id: <199602280938.KAA02520@cadillac.ibp.fr>
To: caml-list@pauillac.inria.fr
Subject: stream

Bonjour,

J'ai une conversation "bizarre" avec caml-light a propos des stream. J'ai
essaye de fouiller dans les docs, je n'ai pas trouve de reponse.

Est ce que caml-light privilegie le dernier element non terminal des stream ?

Voici la conversation :

> Caml Light version 0.61

#let pr flux = do_stream print_int flux;;
pr : int stream -> unit = <fun>

#let toto = [< '1; '2; '3 >];;
toto : int stream = <abstract>

#pr toto;;
123- : unit = ()

#pr toto;;
- : unit = ()

(***** Ok, jusqu'a la, je comprends. do_stream a vide toto.
*****)

#let toto = [< '1; '2; '3 >];;
toto : int stream = <abstract>

#let tata = [< '4; '5 >];;
tata : int stream = <abstract>

#pr [< toto; tata >];;
12345- : unit = ()

#pr toto;;
- : unit = ()

(***** Ok, jusqu'a la, je comprends. do_stream a vide toto. *****)

#pr tata;;
45- : unit = ()

(***** Je comprends un peu moins ou pas du tout. Remarquons tata est a la fin
de [< toto; tata >]
*****)

(***** Ok, on recommence cette fois ci avec un seul.
*****)

#let toto = [< '1; '2; '3 >];;
toto : int stream = <abstract>

#pr [< toto >];;
123- : unit = ()

#pr [< toto >];;
123- : unit = ()

#pr toto;;
123- : unit = ()

(***** La je devine que toto n'est pas vide par do_stream parce que toto est
le dernier dans [< toto >].
*****)

#pr toto;;
- : unit = ()

Merci pour vos reponses. Cordialement votre.