J'imagine plutôt que le type trié + validé comme un type fantôme, c'est à dire que ta fonction de tri peut avoir la signature suivante :
type'asortedvalsort:string->stringsorted
Le type indique juste que le texte est trié est validé, mais il est tout à fait possible d'en extraire la chaîne donnée :
valextract:'asorted->'a
par contre les fonctions qui nécessitent d'avoir en entrée un type trié + validé nécessitent juste de prendre un type « 'a sorted » en paramètre.
C'est ce qui est utilisé dans la librairie js_of_ocaml : tous les types utilisé dans le code javascript sont de type Js.t, ce qui permet de séparer le type des données qui sont utilisées dans le code ocaml, et celles qui sont issues/destinée au code javascript.
Edit: Bon, c'est ça d'arriver après la tempête, cela a expliqué plus bas...
[^] # Re: ouai
Posté par chimrod (site web personnel) . En réponse au journal Données vs Code. Évalué à 3. Dernière modification le 30 mars 2016 à 21:44.
J'imagine plutôt que le type trié + validé comme un type fantôme, c'est à dire que ta fonction de tri peut avoir la signature suivante :
Le type indique juste que le texte est trié est validé, mais il est tout à fait possible d'en extraire la chaîne donnée :
par contre les fonctions qui nécessitent d'avoir en entrée un type trié + validé nécessitent juste de prendre un type « 'a sorted » en paramètre.
C'est ce qui est utilisé dans la librairie js_of_ocaml : tous les types utilisé dans le code javascript sont de type Js.t, ce qui permet de séparer le type des données qui sont utilisées dans le code ocaml, et celles qui sont issues/destinée au code javascript.
Edit: Bon, c'est ça d'arriver après la tempête, cela a expliqué plus bas...