Sto cercando di capire la sintassi corretta per utilizzare l'operatore pipe |> nella creazione di un oggetto. Attualmente sto usando un membro statico per creare l'oggetto e solo per farlo. Ecco la versione semplificata.Utilizzo del simbolo della pipe F # con un costruttore di oggetti
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
Quello che voglio fare ...
static member concat(shapes : Shape list) =
shapes
|> List.map (fun shape -> shape.points)
|> Array.concat
|> (new Shape)
è qualcosa di simile possibile? Non voglio duplicare il codice ripetendo il mio costruttore con il membro statico create.
Aggiornamento costruttori sono funzioni di prima classe come di F # 4.0
In F # 4.0 la sintassi corretta è.
static member concat(shapes : Shape list) =
shapes
|> List.map (fun shape -> shape.points)
|> Array.concat
|> Shape
Uhg, così semplice. Ho provato così tante sintassi diverse e non ho nemmeno pensato di usare un divertimento. Grazie Signore. – gradbot