Version française
Home     About     Download     Resources     Contact us    
Browse thread
Fonction polymorphe
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Eric Hassold <Eric.Hassold@s...>
Subject: Re: Fonction polymorphe


> Un bug probable de caml-light

Sauf erreur de ma part, ce n'est pas un bug, mais une fonctionnalite
introduite dans CL 0.7, qui permet l'affectation dynamique d'un type lors
de la 1ere evaluation ( pour les types representes par '_a  au lieu de 'a).

Pour conserver le typage polymorphe, il suffit d'ecrire explicitement
les parametres de la fonction, c-a-d :

let permutations l =
  let rec permut fixe = fun
    [] [] -> [fixe] |
    debut [] -> [] |
    debut (x :: suite) -> (permut (fixe @ [x]) []
                                  (debut @ suite)) @
                          (permut fixe (debut @ [x]) suite)
  in
  permut [] [] l;;

- : permutations : '_a list -> '_a list list = <fun>

et tout marche.