如何使用F#(sharp)?

Rop*_*tah 26 .net f#

我无法放置微软推出的F#语言的概念和可能性.

F#仅用于声明函数吗?或者通过将F#与普通的C#或VB代码混合在一起,将应用程序"完全"写入F#中?

Dir*_*mar 35

我强烈建议你观看来自PDC 2008的Luca Bolognese的演讲.它不仅非常有趣,而且还展示了令人印象深刻的F#用例:

Luca Bolognese对Microsoft F#的介绍

  • 如果可以的话,我会再次(再次)投票.一个很好的参考,如果只有意大利主持人与capuccino类比,fantastico!谢谢. (5认同)

Mar*_*ell 23

我的期望是,F#将用于的一些专门的系统-这涉及复杂的线程/数学/金融/模型/等位,其中F#做得很好.对于大多数其他领域(UI,DAL等),像C#这样的通用语言似乎(IMO)更受欢迎.

F#的一个优点是(理论上)你可以证明代码是有效的,而不仅仅是测试它.线程支持(由于不变性和异步!使用)也很好(尽管PLINQ可能在线程上竞争).

连接到.NET以允许F#,C#,VB,IronPython,IronRuby等之间的正确集成 - 真正展示了每个的优势.今天如果我做了很多COM互操作,我会考虑VB(这将在4.0中改变dynamic); 对于大多数代码 - C#.对于数学等,F#.整洁.


gra*_*bot 8

我已经用了半年了,我认为它将成为一种通用语言.学习起来相当复杂,因此怀疑它在混合环境中会被过多使用.经理们希望将成本降至最低.

  • 对我而言,重构速度是F#的最大卖点.用它构建了一个简单的视频游戏,我已经爱上了语言结构.起初,处理状态引擎的想法在函数式语言中似乎不合适,但是记录,元组和类型推断使得它变得非常快速.

  • F#具有良好的可读性.一旦熟悉了F#,如果你允许混合使用多范式编程风格,代码就变得非常简洁易读,但是像所有语言一样,不知道自己在做什么的人会把它变成一场噩梦.

我的日常工作涉及网络原型设计,所以我期待看到FSharp.WebTools去哪里,并期待更多支持F#与Microsoft MVC.


Jul*_*iet 6

我在以下几个方面使用F#:

DLL和库.几乎我在空闲时间编写的所有新代码都是F#,当我需要快速GUI时,我只能使用C#.

多重加工.在工作中,我一直在慢慢介绍F#.我有机会通过使用异步工作流和邮箱处理器将一些丑陋的单线程VB.NET转移到多线程F#来演示它能做些什么.

DSL和解析.在我上一家公司,我使用FsLex/FsYacc将SQL解析为AST.原型代码的变体使其成为本教程的一部分.

脚本.我用.fsx文件完全<3脚本.它们是一种编写小脚本的便捷方式,无需编写完整的可执行文件.它也很好修改源代码并再次运行它没有停机时间.我已经修改了.fsx文件的默认行为来运行fsi而不是在双击时在VS中打开.