Ich versuche, die richtige Syntax zu finden, um den Pipe-Operator |> in die Erstellung eines Objekts zu verwenden. Momentan benutze ich ein statisches Element, um das Objekt zu erstellen und es einfach zu verbinden. Hier ist die vereinfachte Version.Verwenden des F # -Rohrsymbols mit einem Objektkonstruktor
type Shape =
val points : Vector[]
new (points) =
{ points = points; }
static member create(points) =
Shape(points)
static member concat(shapes : Shape list) =
shapes
|> List.map (fun shape -> shape.points)
|> Array.concat
|> Shape.create
Was ich tun möchte ...
static member concat(shapes : Shape list) =
shapes
|> List.map (fun shape -> shape.points)
|> Array.concat
|> (new Shape)
Ist so etwas möglich? Ich möchte Code nicht duplizieren, indem ich meinen Konstruktor mit dem statischen Element create wiederhole.
aktualisieren Konstrukteurs sind erstklassige Funktionen wie von F # 4.0
In F 4.0 # die korrekte Syntax ist.
static member concat(shapes : Shape list) =
shapes
|> List.map (fun shape -> shape.points)
|> Array.concat
|> Shape
Uhg, so einfach. Ich habe so viele verschiedene Syntaxen ausprobiert und nicht einmal daran gedacht, Spaß zu machen. Danke, mein Herr. – gradbot