在vs2019里看到的,8懂9问一下。


首先,f#可以生成IL,也就是说生成的库可以被c#直接调用。另外一些工具可以编译成js,譬如fable。

其次,f#与c#有很大区别,带来很多思维上的转变。下面我通过回忆列举一下,想到一点更新一点,人在外地,手机码字,更新会慢一点。

  1. f# 有比委托还轻量的函数对象。
  2. f# 会把尾递归编译成循环。
  3. f# 没有break关键字,所以很多时候需要使用递归。
  4. f# 使用对象表达式可以在不手动实现虚类或介面的继承类的情况下产生一个可用对象。
  5. f#独有的 inline + 静态泛型,突破 .Net 自身动态泛型的局限,可以实现更多抽象代码。
  6. 计算表达式,功能非常强大,分为标准操作和自定义操作,标准操作就是monad那一套。使用计算表达式可以做各种DSL,而f#自带的seq(IEnumerable)构造语法,以及Linq语法,非同步表达式等都属于计算表达式。
  7. MailboxProcessor,是f#自带的actor,并发编程时很好用。我常用它来做设备通讯适配器。
  8. f# 可以定义单位,以及单位间的转换方法,在计算时如果使用单位,可以防止自己用错单位。
  9. f# 是强类型推导语言,不支持隐式转换。

更多细节可以看:

羊牮:各个编程语言都有哪些「亮点」??

www.zhihu.com图标

F#和C#、VB都差不多,都是在.Net平台下的开发语言,网上资料蛮少,国内用的也不多,我算颇为关注的,下面分享下。

F#是微软2002年开始研发,然后再2005年发布了第一个版本,2007年底正式置入Visual Studio的,我算是持续关注了的,因为我自己对客户端交互这块儿比较薄弱。

F#是一种函数型程序设计语言。而且F#对IP(Imperative Programming)与OOP的支持一样的出色。F#也许终将成为程序核心数据多线程处理的首选,而C#与VB等将在用户界面交互设计方面继续发挥其强大的潜力。

给你找个HelloWorld例子

当然了,到目前2020年,F#也还没火起来,不过F#身为微软唯一的FP语言,其位置特殊,还是可以关注一下的。


一门微软出的函数式编程语言,个人觉得函数式语言写东西能够更加直观的表达你的思维。

用这个语言写过一些项目,比如 TypedocConverter:

https://github.com/hez2010/TypedocConverter?

github.com

相比其他的纯 FP 语言(如 Haskell),它还兼容 IP 和 OOP,更加灵活一些,然而 F# 目前还不支持高阶多态所以还是有一定的局限性(以后会加)。

另外 F# 可以让你发现原来类型系统是这么强大的东西。


F#名字由来应该是functional+fun+C#的sharp。

F#之父Don Syme先前在twitter上分享了一个PPT,提到当时这还是比尔盖茨亲自过目的研究项目。另外,有一个比较详尽的pdf(https://fsharp.org/history/hopl-draft-1.pdf)也介绍了它的一些历史。

Don Syme这种技术大牛,参与的研究项目还是很厉害的,我记得.NET里的泛型设计,他也是主要参与人。佩服!!!

我个人主要混迹在.NET行业,现在使用的个人或兼职项目基本上都是F#了,最近准备回馈一下社会(以前总是从社区看各种视频和文章,现在也尝试分享一下),计划用F#来做一个带前后端的俄罗斯方块网页游戏。里面主要涉及的底层技术就是F#, React,http://asp.net core等:

React 的另类用法系列(俄罗斯方块)- 1?

www.slaveoftime.fun图标

上面的文章主要是一个视频(刚开始学习剪辑,如果不巧有看官感觉到辣眼睛还请见谅 )


我就随便说说,蹭一脚。

不清楚F#,但是出来也一阵的。

C#目前还是.net家族的主流趋势。

其实从语言排行,就能略知一二。

语法上,我个人感觉不太像。

至于联系,有和没有,都能找到理由说


为函数式编程设计的一门语言,只不过是.Net平台上的另一门语言而已,这类语言貌似在一些特殊领域比较厉害,反正我是完全看不懂。


VB,F#,c#都是VS的平等公民,现在好像C#的生态好一点,没啥联系,基本都一样符合CLS,就是语法不同而已,编程写代码,最重要的是认真,多想,多看,多借鉴。代码质量写好了,比用什么语言开发好的多。


推荐阅读:
相关文章