Acabo de notar que el espacio de nombres FSharp.Core incluye tipos de matriz genéricos de hasta 4 dimensiones, es decir, Core. [] <'T> , Core. [,] <' T>, etc. C # y VB parecen estar funcionando bien con System.Array, aunque no está claro para mí cómo logran admitir tipos de matrices especializadas fuertemente tipadas como int [], string [].
Supongo que esto se convierte en dos preguntas:
- ¿Cómo admite C # tipos de matriz especializados fuertemente tipados como int [] basados en el sistema no genérico System.Array?
- Dado que C # logra hacer esto, ¿por qué F # define tipos de matriz genéricos?
Muy probablemente, al generar una clase especializada que hereda
System.Array
ya que los genéricos no estaban disponibles en 1.0. Es probable que el comportamiento se haya mantenido por compatibilidad.Porque F # no tenía las mismas restricciones de compatibilidad que C # 2.0 tenía con el código existente. Según lo que sé, C # 2.0 habría tenido tipos de matriz genéricos si fuera la primera versión de C #.
fuente