看起来它有几个次更多的运算符:
https://msdn.microsoft.com/en-us/library/dd233228.aspx
VS
https://msdn.microsoft.com/en-us/library/6a71f45d.aspx
这只是让语言看起来“简洁”或历史ML根源的代价吗?
答案 0 :(得分:3)
我不确定从MSDN查看这两个列表是否必然会给出公平的比较。请注意,F#表列出了符号字符用作表达式一部分的任何内容 - 包括字符串文字"
,注释///
,预处理器指令#
,引用,泛型和许多其他语法。另一方面,C#引用只列出运算符(虽然也有一些关键字)。
F#确实比C#拥有更多的运营商,但我认为差异并不像你想象的那么大。最值得注意的是:
>>
和|>
等功能的运算符(及其变体)::
(前置元素)和@
(连接)等列表的运算符用于处理可空值的运算符(在某些方面有许多?
),尽管我认为这些更像是启用LINQ互操作的解决方法而不是F#的基本运算符
有一些可变参考单元:=
和!
的运算符 - 我认为这些主要是ML遗产,你并不经常需要它们。
所以,我认为主要的是F#只是有一些数据类型是函数式编程的核心,它有运算符来处理它们(特别是函数和列表)。另一方面,C#列表中的一些内容(typeof
,sizeof
,delegate
以及+=
等都是F#中的函数或者不需要在所有)。