繁体   English   中英

为什么ML语言(F#)与C语言(C#)相比有这么多不同的运算符?

[英]Why do ML languages (F#) have so many different operators compared to C languages (C#)?

看来它的运算符多了几倍

https://msdn.microsoft.com/zh-CN/library/dd233228.aspx

https://msdn.microsoft.com/zh-CN/library/6a71f45d.aspx

这仅仅是为了使语言看起来“简洁”或历史ML根源而付出的代价?

我不确定查看MSDN上的两个列表是否一定能得出公平的比较。 请注意,F#表列出了将符号字符用作表达式一部分的任何内容-包括诸如字符串文字" ,注释/// ,预处理器指令# ,引号,泛型语法以及许多其他内容。一方面,C#参考仅列出了运算符(尽管也有一些关键字)。

的确,F#比C#具有更多的运算符,但我认为差异不像您想象的那么大。 最值得注意的是:

  • 使用>>|>类的函数的运算符(以及这些函数的变体)
  • 用于处理列表的运算符,例如:: :(前置元素)和@ (并置)
  • 用于处理可为空的值的运算符(在某些方面带有许多? ),尽管我认为这些要比支持F#的基本运算符更多地是支持LINQ互操作的解决方法

  • 可变引用单元格有一些运算符:=! -我认为这些主要是ML的遗产,您实际上并不需要那么频繁。

因此,我认为最主要的是F#只是功能编程核心中的其他几种数据类型,并且它具有用于处理它们的运算符(尤其是函数和列表)。 另一方面,C#列表中的几件事( typeofsizeofdelegate+=等都是F#中的函数,或者根本不需要)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM