Es gibt viele Informationen über abhängige Typen in Haskell und Scala. Für OCaml, nicht so sehr. Ist jemand in der Lage, ein Coding-Beispiel dafür zu liefern, wie dies in OCaml zu erreichen ist (wenn es überhaupt möglich ist)? Es gibt natürlich (die aufgegebenen) Dependent ML, aber es scheint nicht möglich, solche Sachen in "normalen" OCaml-Code einzubauen.Abhängige Typen in OCaml
Grundsätzlich, was ich tun möchte, ist Code wie assert(n > 0)
zu entfernen und überprüfen Sie es bei der Kompilierung.
EDIT
Als Randbemerkung, es lohnt sich, die OCaml Hybrid Contract Checking Zweig zu erwähnen, das könnte einige der Bedürfnisse eines abhängigen Typsystem füllen. Statt assert(n > 0)
würden Sie dann einen Vertrag schreiben:
contract f = {x : x > 0} -> int
let f x = x + 1
let dummy_variable = f (-1) (* Won't compile *)
Darf ich fragen, wo ist das "viele Informationen über abhängige Typen in Haskell und Scala"? Trotz eines vernünftigen Überblicks über die Haskell-Community weiß ich nicht, worauf Sie sich beziehen. (Ich würde die Arbeit von UPenn an [Dependently-typed Haskell] (http://www.cis.upenn.edu/~sweirich/) als relevant betrachten, aber das ist extrem forschend und nicht praktisch, und vielleicht auch nicht "viel" in Volumen). Ich habe keine Ahnung, was Sie für Scala denken - außer vielleicht die Beziehung zu pfadabhängigen Typen? – gasche
Ehm, auf stackoverflow, dachte ich. Vielleicht wurde ich von Scalas wegabhängigen Typen getäuscht. –