si quiero definir un método de extensión para la matriz flotante como la desviación estándar, ¿sería mejor usar la extensión del módulo en el módulo Array o la extensión en el tipo float[]
? gustan:Extensión del módulo F # frente a la extensión de tipo
module Array =
let std (arr: float[]) = ...
o
type float ``[]`` with
member this.std = ...
Si hago extensión de tipo como éste, sería la única std
se calculará una vez o cada vez que se utiliza?
Y, ¿cuál es el formato correcto para este último, type float ``[]`` with
no funciona ... gracias.
@kvb: ¿Sabes _por qué_ funcionan de manera diferente en F #? – Daniel
@Daniel - Yo no. Sin embargo, creo que el comportamiento de F # tiene sentido. ¿Por qué no se deben escribir las definiciones de tipo espejo de extensiones? ¿No parece extraño que los métodos en una instancia de un tipo genérico construido dependan de sus argumentos de tipo? – kvb
@kvb: Sí, pero parece tener mucho sentido en las interfaces genéricas. Por ejemplo, 'string Join (esta IEnumerable partes)' parece razonable. –
Daniel