English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
Circuralizing lists
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2007-11-26 (22:02)
From: Alain Frisch <alain@f...>
Subject: Re: [Caml-list] Circuralizing lists
Till Varoquaux wrote:
> Writing the list containing an inifinite number of ones can easily be done as:
> let rec ones = 1::ones
> I however don't know of any type safe to generate the infinite list
> which is the repetition of a given list (in a type safe non lazy way).
> What I'm looking for is a code that would do:
> let circularize  = function
>     | [] -> failwith "cannot circularize empty lists"
>     | l -> let rec res = l@res in res
> Is this at all possible?

No, this is not possible (using only safe features). The only recursive 
(non functional) value loops that can be built have a fixed shape.

-- Alain