Я только что установил последнюю версию F # и открыл старое решение, чтобы посмотреть, что оно мне скажет.
Это многофайловое решение, в котором первый файл содержит некоторые «функции расширения» в модуле List:
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)
| _ -> []
Компилятору это больше не нравится, и он говорит:
Файлы в библиотеках или многофайловых приложениях должны начинаться с пространства имен или объявления модуля, например, 'namespace SomeNamespace.SubNamespace' или 'module SomeNamespace.SomeModule'
Но если я сделаю это:
module Foo.List =
Там написано:
Аббревиатура модуля должна быть простым именем, а не путем
Что мне здесь не хватает? И каково решение для этого «особого» случая, когда я расширяю модуль, который приходит из других мест?