Estoy diseñando un objeto de juego en F #. En C++, crearía clases para representar el aspecto gráfico, el aspecto físico, etc., cada uno con valores dinámicos, y luego agregaría instancias de esas clases a GameObject. Podría usar el mismo diseño en F # con tipos mutables, pero estoy tratando de mantener todo inmutable. Entonces, si utilizara el mismo diseño estaría recreando miles de objetos grandes en cada cuadro, y probablemente gastaría todo el tiempo de CPU asignado.¿La forma correcta de definir un tipo inmutable grande con piezas que se actualizan?
¿Hay alguna manera en que pueda definir un tipo en el que pueda vincular los valores de otro objeto y suministrar nuevos, para reducir las asignaciones?
Por ejemplo, para cambiar el color de un cuadro, quiero usar la memoria de la antigua caja con una nueva pieza de gráficos, y el uso de memoria del gráfico antiguo de pieza con un nuevo color:
let box = ...
...
let changedBox = {box with
graphics = { box.graphics with colour = blue} }
Tiene sentido. Mi problema fue que pensé que los objetos se copiarían, en lugar de reutilizarlos. Gracias Señor. También disfruto leyendo tu blog, es la razón por la que entré a F # :) – Patrick