Class.MyFunctionName or Module.my_function_name
在f#您打算混合BCL类和F#库:它们的外壳不同,代码看起来很丑陋。
yyes,有混乱,因为多年来F#从Ocaml变成了.NET。基本上,命名约定是“打破变化” - 旧代码与新代码不一致。
,但是,2009年5月的CTP解决了这一问题。
报道说...所有.NET和F#OO代码根据现有的.NET指南使用Pascalcase
但请参见下面的编辑!f#功能编程操作员,例如list.map用于f#内部实现代码中。这种代码将骆驼用于操作员名称
不应使用underscores。
Class.myFunctionName和Module.MyFunctionName(
- ,您的问题...
Class.MyFunctionName or Module.my_function_name
答案是
))
(上述规则1)。-编辑。 2019年11月2日 -
电流指南
推荐骆驼在模块级别上的功能,因此然后使生产代码与f#库一致(例如list.averageby)module.myFunctionName
我认为自当前接受的答案以来的答案可能已经发生了变化。
使用pascalcase用于类型声明,成员和标签
类,接口,结构,枚举,委托,记录和 歧视工会都应以Pascalcase的名字命名。成员 在类型和标签中以供记录和歧视工会 也使用pascalcase.
https://learn.microsoft.com/en-us/dotnet/fsharp/style-guide/formatting#use-pascalcase-for-type-declarations-declarations-members-members-members-members
和使用骆驼用于模块结合的公共功能
当模块结合功能是公共API的一部分时,它应该使用 骆驼:f#
module MyAPI = let publicFunctionOne param1 param2 param2 = ... let publicFunctionTwo param1 param2 param3 = ...
Https://learn.microsoft.com/en-us/dotnet/fsharp/style-guide/formatting#use-camelcase-for-module-module-bound-public-functions
,基于这些,我的回答是:
Class.MyFunctionName Module.my_function_name
应该这样写:任何官员:我认为“还不是”,但是每当VS 2010到达Beta1时,您可能会以其接近决赛的形式看到F#库,并且相对于CTP,将会有许多更名。 鉴于其历史,F#可能总是比其较旧的表兄弟更精神分裂。
Class.MyFunctionName Module.myFunctionName
我的理解和当前用法是模块/静态功能的情况较低,并且“实例”功能具有较高的情况。
eDit不是对这个问题的答案,而是相关的:
f#格式化惯例从我从Hubfs.com和其他来源看到的内容中,它来自.NET和OCAML。
我希望他们切换到任何一个,并且没有两个不同的约定,并且成为微软,我相信他们会使用点网样。
确定有任何真正的解决方案。似乎Ocaml-ish代码可能会保留其某些命名,即小写模块方法,而OO成员将使用.NET样式。