Acabo de instalar la última versión de F #, y abrí una solución antigua para ver qué me decía.F # 2.0 advertencia de espacio de nombres
Es una solución de múltiples archivos, donde el primer archivo incluye algunas 'funciones de extensión' en el módulo de lista:
module List =
///Given list of 'rows', returns list of 'columns'
let rec transpose lst =
match lst with
| (_::_)::_ -> List.map List.hd lst :: transpose (List.map List.tl lst)
| _ -> []
El compilador ya no le gusta esto, y dice:
Archivos en bibliotecas o aplicaciones de archivos múltiples debe comenzar con un espacio de nombres o declaración de módulo, por ejemplo 'Espacio de nombres SomeNamespace.SubNamespace' o 'SomeNamespace.SomeModule módulo'
Pero si hago esto:
module Foo.List =
Dice:
Un módulo abreviatura debe ser un nombre simple, no es una ruta
¿Qué es lo que me falta aquí? ¿Y cuál es la solución para este caso "especial" en el que extiendo un módulo que proviene de otro lugar?
hd -> cabeza y tl -> cola? ¿Estas personas no se preocupan por el código de golf? :) – Benjol
:) - Agréguelos ya que está agregando funciones al módulo de la Lista ... –
La otra mitad de la respuesta, que es muy confusa, es que si no tiene espacio de nombres, y solo un módulo, no debe 't put an = after the module declaration. Pero si tiene un espacio de nombre, necesita un = – Benjol