[英]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#列表中的几件事( typeof
, sizeof
, delegate
和+=
等都是F#中的函数,或者根本不需要)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.