我在一家技术公司工作,该公司做的原型比产品交付还要多。我刚刚被问到C#和F#有什么区别,为什么MS创建F#,以及在什么情况下会比C#更好呢?
我使用该语言已有一段时间了,我很喜欢它,因此我可以轻松地继续学习F#的强大功能,但是我缺乏C#的经验来说明为什么我们应该在另一种之上使用。
使用C#vs F#或F#vs C#有什么好处?
函数式编程比命令性语言的一般优势:
您可以使用F#之类的功能编程语言轻松地编写许多问题,使其更接近定义,并且更加简洁,并且您的代码不易出错(不变性,更强大的类型系统,直观的递归算法)。您可以编写您的意思而不是计算机想要说的内容;-) 在Google上搜索甚至在SO上搜索时,会发现许多类似的讨论。
F#的特殊优势:
使用-expressions进行异步编程 非常 容易和直观-即使使用ParallelFX,相应的C#代码也要大得多async {}
async {}
非常容易地将编译器编译器与特定领域的语言集成在一起
根据需要扩展语言:LOP
计量单位
语法更灵活
通常是更短,更优雅的解决方案
看看这个文件
C#的优点是,对于“命令式”应用程序(用户界面,命令式算法),它通常比功能性编程语言更准确;它所使用的.NET- Framework是强制性设计的,并且它更加普及。
此外,您可以在一个解决方案中同时使用F#和C#,因此您可以将两种语言的优点结合起来,并在需要时使用它们。