Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么';在F#That';C难吗?_C#_F# - Fatal编程技术网

C# 什么';在F#That';C难吗?

C# 什么';在F#That';C难吗?,c#,f#,C#,F#,可能重复: 我期待着在本地.Net用户组上做一个关于F#的演讲。我期待着观众提出“我为什么要调查F#?”的问题。我知道大部分可以在F中完成的事情也可以在C中完成——所以我正在寻找在F中可以轻松完成但在C中很难完成的事情(例如模式匹配)。如果这个问题已经有了很好的答案,请在评论中把它们链接起来,我将结束这个问题。我确实看到了一些东西,但如果已经有一个问题解决了这个问题,我没有找到它 顺便说一句,如果任何版主想标记这个社区维基,请随时;对我来说,这似乎更像是一个调查问题 由于F#是一种函数式语言,

可能重复:

我期待着在本地.Net用户组上做一个关于F#的演讲。我期待着观众提出“我为什么要调查F#?”的问题。我知道大部分可以在F中完成的事情也可以在C中完成——所以我正在寻找在F中可以轻松完成但在C中很难完成的事情(例如模式匹配)。如果这个问题已经有了很好的答案,请在评论中把它们链接起来,我将结束这个问题。我确实看到了一些东西,但如果已经有一个问题解决了这个问题,我没有找到它


顺便说一句,如果任何版主想标记这个社区维基,请随时;对我来说,这似乎更像是一个调查问题

由于F#是一种函数式语言,在其中实现特定于域的语言应该容易得多。

其中一个主要概念是F#中的asyncrounus调用,而且F#使用不可变变量,因此并发很容易

看 及其他物品。可能还有其他不同之处,但我认为在这里收集它们只是做你的家庭作业。

我会说

  • 异步编程
  • 计量单位

我很想投票结束这场辩论,因为这听起来很主观和/或有争议。但我不是百分之百确定。(只是旁注:很多时候我看到这个问题比较好的F#和坏的C#,也就是说,没有使用合适的C#设备;我不是说没有区别——但要知道这一点;还要注意C#5(异步CTP)是如何通过继续等方式提高C#的线程能力的)投票重新开放的。我会用一般应用程序域(例如“高度并发的服务器应用程序”或“编程生成的GUI”)来回答所谓的重复问题,而我会用特定的代码示例来回答这个问题(例如,一些相互递归的异步工作流以优雅的方式实现一个状态机,该状态机依赖于尾部调用消除,或者一个解析器作为一组相互递归的活动模式编写,或者一个简单的并发程序使用
MailboxProcessor进行消息传递
).不变性!这对C#来说是一个巨大的痛苦。这里有一个简单但痛苦的例子:我认为有很多问题已经涉及到这个主题。只要看看投票率很高的F#问题列表:特别是,F#中的异步功能是生产级质量,而C#(和VB.NET)的Asnyc功能仍然处于CTP阶段。而且尾部调用消除使得异步在F#中更加优雅。度量单位很好,但它是一种非常类似Java泛型(擦除)的技巧,意味着没有反射,在程序集之外没有任何用处。