Ich versuche, diese Haskell Max Funktion Implementierung zu scala
zu portieren %Vor%Dies ist mein erster Versuch:
%Vor%Aber ich bekomme den folgenden Fehler:
%Vor%Ich habe versucht, mit Bestellung, Comprable, etc. mit ähnlichen Ergebnissen ...
Irgendeine Idee darüber, was fehlt?
Vielleicht möchten Sie die Klasse Ordering
type?
Dies ist die Methode, mit der die integrierte Methode max
funktioniert:
Sie können Dinge sehr viel aufräumen, wenn Sie dies tun:
%Vor%Oder Sie können es tail-recursive für erhöhte Effizienz machen (weil der Compiler es optimieren wird):
%Vor% Außerdem sollten Sie RuntimeException
oder eine Unterklasse davon ausgeben, nicht Error
.
Hoppla, sollte besser aussehen, bevor Sie
fragenIch habe die Antwort in diesem Thread gefunden: Ссылка
Es scheint, als ob Haskells Typklassen unter Verwendung von implicits in scala (wie im Beispiel von dhg) implementiert sind.
es endet so:
%Vor%oder mit etwas syntaktischem Zucker, nur
%Vor%Trotzdem denke ich, dass der Compiler genug Informationen hat, um es selbst zu machen ...
ps: Ich habe ein bisschen die Funktion verschönert ...