快速提问。我刚读过,如果你想添加一个函数,例如在List模块中,您可以使用该函数定义一个新的List模块:
module List
let foo = // ...
这是否会将foo
添加到主List模块,或者您是否必须明确打开新的List
?前者似乎是Ruby的“猴子补丁”;我猜后者更像是扩展方法。
(我试试这个,但我不在编译器附近。)
答案 0 :(得分:4)
这很像名称空间;他们是“开放的”。也就是说,我可能有两个文件或两个程序集将类型提供给命名空间,然后如果我使用这些文件或引用那些程序集并说
open ThatNamespace
我看到了所有成员的联盟。
答案 1 :(得分:3)
这种方式与扩展方法类似:
module List =
let doSomething lst v = lst |> List.nth v