Estoy tratando de encontrar la sintaxis correcta para usar el operador de tuberías |> en la creación de un objeto. Actualmente estoy usando un miembro estático para crear el objeto y simplemente conectarlo a eso. Aquí está la versión simplificada.Uso del símbolo F # pipe con un constructor de objetos
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
Lo que yo quiero hacer ...
static member concat(shapes : Shape list) =
shapes
|> List.map (fun shape -> shape.points)
|> Array.concat
|> (new Shape)
es algo como esto posible? No quiero duplicar código repitiendo mi constructor con el miembro estático create.
actualización constructores son funciones de primera clase como de F # 4.0
En F # 4.0 la sintaxis correcta es.
static member concat(shapes : Shape list) =
shapes
|> List.map (fun shape -> shape.points)
|> Array.concat
|> Shape
Uhg, tan simple. Intenté muchas sintaxis diferentes y ni siquiera pensé en usar una diversión. Gracias Señor. – gradbot