Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F#模块可以用猴子补丁吗?_F#_Module_Extension Methods_Monkeypatching - Fatal编程技术网

F#模块可以用猴子补丁吗?

F#模块可以用猴子补丁吗?,f#,module,extension-methods,monkeypatching,F#,Module,Extension Methods,Monkeypatching,快速提问。我刚刚了解到,如果您想向列表模块添加一个函数,您可以使用该函数定义一个新的列表模块: module List let foo = // ... 这是否具有将foo添加到主列表模块的效果,还是必须显式打开新的列表?前者似乎是Ruby的“猴子补丁”;我想后者更像是扩展方法 (我会尝试一下,但我不接近编译器。)这与扩展方法的工作方式类似: module List = let doSomething lst v = lst |> List.nth v 它很像名称空间;它们

快速提问。我刚刚了解到,如果您想向列表模块添加一个函数,您可以使用该函数定义一个新的列表模块:

module List
  let foo = // ...
这是否具有将
foo
添加到主列表模块的效果,还是必须显式打开新的
列表
?前者似乎是Ruby的“猴子补丁”;我想后者更像是扩展方法


(我会尝试一下,但我不接近编译器。)

这与扩展方法的工作方式类似:

module List =
    let doSomething lst v = lst |> List.nth v

它很像名称空间;它们是“开放的”。也就是说,我可能有两个文件或两个程序集将类型贡献到名称空间中,然后如果我使用这些文件或引用这些程序集

open ThatNamespace
我看到所有成员的联合