J'écris un simple type de données abstrait pour les fractions et Je ne peux même pas faire fonctionner le constructeur, je suis juste très perdu sur la syntaxe SML.SML: Création de types de données abstraites
signature fracs = sig
type fraction
exception zero_denominator
(* constructor *)
val // : int * int -> fraction
/*******************************************************************************************************************************************/
est le fichier .sig montrant le constructeur que j'implémente. Voici ce que j'ai jusqu'ici. l'erreur que je reçois est que je fais int * int * -> int quand je veux int * int-> fraction. Je sais ce qu'il dit et tout, mais je ne peux pas y arriver.
structure fracs :> fracs = struct
abstype fraction = frac of int * int
with
exception zero_denominator;
(**********************************)
(*constructor*)
infix 8 //;
fun num // den = if den = 0 then raise zero_denominator
else
num * den;
end;(*end ADT*)
end;(*end struct*)
Oh! Je vois, merci beaucoup! – user1309382