Ich schreibe einen einfachen abstrakten Datentyp für Brüche und Ich kann nicht sogar den Konstruktor zu arbeiten, ich bin nur sehr auf SML-Syntax verloren.SML: Erstellen von abstrakten Datentypen
signature fracs = sig
type fraction
exception zero_denominator
(* constructor *)
val // : int * int -> fraction
/*******************************************************************************************************************************************/
das ist die .sig-Datei, die den Konstruktor zeigt, den ich implementiere. Hier ist was ich bisher habe. der Fehler, den ich erhalte, ist, dass ich int * int * -> int mache, wenn ich int * int-> Bruch haben will. Ich weiß, was es sagt und alles, aber ich kann es einfach nicht passieren lassen.
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! Ich sehe, vielen Dank! – user1309382