我刚刚安装了最新版本的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 =
它说:模块缩写必须是简单的名称,而不是路径。我在这里错过了什么?如果我要扩展来自其他地方的模块,有什么解决方案呢?