Ich erhalte, was ein Vorrang Problem scheint zu sein, eine SML-Funktion, Ersatz in Aufruf:SML Funktionsaufruf analysiert nicht Argumente als Argument
fun substitute v new (typevar q) = ...
Und ich rufe diese von einer anderen Funktion:
fun new_type_vars (typevar v) non_gens =
substitute v new_var() (typevar v)
Aber ich erhalte eine Fehlermeldung:
C:/sml/type_checker.sml:22.48-23.44 Error: operator and operand don't agree [tycon mismatch] operator domain: type_exp operand: unit -> string in expression: (substitute v) new_var
Welche scheint darauf hinzudeuten, dass es (Ersatz v) zu nennen versucht, eine nd rufen Sie dann das Ergebnis dieses Aufrufs mit dem Argument new_var auf.
Ich habe versucht, Klammern um die ganze Sache, aber das hilft nicht, und wenn ich Klammer um die Argumente wie (v new_var...)
hinzufügen, denkt es, dass v eine Funktion Anwendung auf new_var ist. Was ist mit diesem Funktionsaufruf los?