Konvertieren von OCaml in F #: Unterschiede zwischen der Eingabe und der Typinferenz

In der ForschungTypinferenz Unterschiede zwischen F # und OCaml, auf die sie sich tendenziell konzentriertenNominativ gegenstrukturelle Typ System. Dann habe ich gefundenBesonderheiten funktionaler Programmiersprachen welche Liste Typisierung und Inferenz als verschiedene Merkmale.

Da der Artikel über Eigenschaften sagt, dass sowohl OCaml als auch F # verwendet werdenDamas-Milner Typinferenz, die ich für einen Standardalgorithmus hielt, d. h. einen Algorithmus, der keine Variationen zulässt. Wie hängen die beiden Merkmale zusammen? Ist es so, dass Damas-Milner die Basis ist, auf der beide Typinferenzsysteme aufgebaut sind, aber dass sie jeweils Damas-Milner basierend auf der Typisierung modifizieren?

Außerdem habe ich im F # -Quellcode nach den Wörtern Damas, Milner und Hindley gesucht und keine gefunden. Eine Suche nach der Wortinferenz ergab den Code für die Typinferenz.

Wenn ja, gibt es Papiere, in denen die Details der einzelnen Inferenzalgorithmen für die jeweilige Sprache erläutert werden, oder muss ich den Quellcode nachsehenOCaml undF #.

BEARBEITEN

Hier ist einSeite das hebt einige Unterschiede in Bezug auf die Typinferenz zwischen OCaml und F # hervor.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage