Re: Fonction polymorphe

Eric Hassold (Eric.Hassold@sophia.inria.fr)
Thu, 01 Feb 1996 15:03:48 +0100

Message-Id: <199602011403.PAA04962@medee.inria.fr>
To: Hubert Canon <canon@poly.polytechnique.fr>
Subject: Re: Fonction polymorphe
Date: Thu, 01 Feb 1996 15:03:48 +0100
From: Eric Hassold <Eric.Hassold@sophia.inria.fr>

> 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.