¿Es posible restringir localmente la importación de un módulo, preferiblemente combinando esto con Module Abbreviations
? El objetivo es evitar contaminar mi módulo actual con símbolos de importaciones.¿Cómo restringir la importación de un Módulo en F # a un ámbito local?
p. Ej. (inspirado en OCaml) algo así:
let numOfEvenIntegersSquaredGreaterThan n =
let module A = Microsoft.FSharp.Collections.Array in
[|1..100|] |> A.filter (fun x -> x % 2 = 0)
|> A.map (fun x -> x * x)
|> A.filter (fun x -> x > n)
|> A.length
let elementsGreaterThan n =
let module A = Microsoft.FSharp.Collections.List in
[1..100] |> A.filter (fun x -> x > n)
Además, ¿hay alguna manera de lograr algo similar con espacios de nombres?
Gracias por su respuesta Laurent. Sin embargo, usar Array fue solo un ejemplo arbitrario, y desafortunado en retrospectiva. Mi objetivo es abrir un Módulo (o espacio de nombres) arbitrario _ solo_ dentro de un alcance limitado, como dentro de un solo 'permitir el enlace'. Si te entiendo correctamente, ¿esto (¿actualmente?) No es posible en F #? –
De hecho. Espero que sea posible en el futuro. Mientras tanto, creo que agregar algunas abreviaturas en el alcance global no contamina demasiado (pero trate de evitar nombres de 1 char). – Laurent
ok gracias y esperemos por el futuro :) –