Wenn ich diesen Code haben:Erstellen von rekursiven diskriminiert Gewerkschaften Werte
type HtmlNode =
| HtmlElement of name:string * attribute:HtmlAttribute list
| HtmlText of content:string
and HtmlAttribute =
| HtmlAttribute of name:string * value:string * parent:HtmlNode
let createElement name attrs =
let toAttributes element = [ for name, value in attrs -> HtmlAttribute(name, value, element)]
let rec element = HtmlElement(name, attributes)
and attributes = toAttributes element
element
Der Compiler gibt den folgenden Fehler:
Recursive values cannot appear directly as a construction of the type 'HtmlNode' within a recursive binding. This feature has been removed from the F# language. Consider using a record instead.
Warum ist das so? Der Buchstabe rec soll die Erstellung von rekursiven Werten unterstützen, und etwas Ähnliches funktioniert mit Datensätzen.
Ich bekomme damit keinen Fehler. – eulerfx
Aufgrund der Nachricht wurde dies wahrscheinlich in der neuesten Version 3.1 geändert. – Daniel
Der gleiche Fehler passiert in F # 3.0 - so ist es etwas älter –