caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] listes qui bouclent
@ 2014-09-07  9:31 Jean-Denis Eiden
  2014-09-07  9:55 ` Rémy Besognet
  2014-09-07 13:24 ` Jeremy Yallop
  0 siblings, 2 replies; 3+ messages in thread
From: Jean-Denis Eiden @ 2014-09-07  9:31 UTC (permalink / raw)
  To: caml-list

Bonjour à tous,

CaML light permet la construction suivante :

#let rec liste = 0::1::2::3::liste;;
liste : int list =
 [0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0;
  1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1;
  2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2;
  3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2;
  ...]

Cela étant, j'aimerais pouvoir faire la même chose en paramétrant la période 
; par exemple, j'aimerais créer [ 0 ; 1 ; 2 ; ... ; n-1 ; 0 ; 1 ; 2 ; ... ] 
:

#let repète n = let aux = ref [] in for i = n-1 downto 0 do aux:= i::(!aux) 
done; !aux;;
repète : int -> int list = <fun>

#let cyclique n = let aux = repète n in let rec liste = aux @ liste in 
liste;;

Mais là :

let cyclique n = let rec liste = (repète n) @ liste in liste;;
>                                           ^^^^^^^
Ce genre d'expressions n'est pas autorisé comme membre droit d'un "let rec".

Est-ce seulement un problème de syntaxe ou bien y a-t-il impossibilité 
absolue, la taille de la liste servant de période devant être connue à la 
compilation ?

Cordialement, Jean-Denis Eiden


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

end of thread, other threads:[~2014-09-07 13:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-07  9:31 [Caml-list] listes qui bouclent Jean-Denis Eiden
2014-09-07  9:55 ` Rémy Besognet
2014-09-07 13:24 ` Jeremy Yallop

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).