Estoy usando tipos de registro en F # para almacenar algunos datos simples, p. de la siguiente manera:¿Se implementan los tipos de registros F # como estructuras o clases?
open Vector
type Point =
{
x: float;
y: float;
z: float;
}
static member (+) (p: Point, v: Vector) = { Point.x = p.x + v.x ; y = p.y + v.y ; z = p.z + v.z }
static member (-) (p: Point, v: Vector) = { Point.x = p.x - v.x ; y = p.y - v.y ; z = p.z - v.z }
static member (-) (p1: Point, p2: Point) = { Vector.x = p1.x - p2.x ; y = p1.y - p2.y ; z = p1.z - p2.z }
member p.ToVector = { Vector.x = p.x ; y = p.y ; z = p.z }
No puedo determinar si esto se implementará como un valor o tipo de referencia.
He intentado poner [<Struct>]
antes de la definición del tipo, pero esto causa todo tipo de errores de compilación.
Los tipos de registro son siempre hacen referencia a tipos: http://stackoverflow.com/questions/5858550/f-records-vs-net-struct/5858577#5858577 –