F#创建者Don Syme谈F#设计原则

栏目: ASP.NET · 发布时间: 7年前

内容简介:F#创建者Don Syme谈F#设计原则

在.Net Fringe 2016大会上,F#创建者Don Syme 谈了 他对F#现状的看法以及F#的二元性。F#是以一个为面向对象语言构建的运行时为基础构建的函数式语言。

F#是2010年发布的,遵循开源许可协议。F#比.Net更早地踏上了开源之路,C#和.Net在2015年才开源。将F#开源主要是为了增加其公信力。那时,一门语言想要得到开发人员和企业的重视,开源是必须的。

为.NET带来一门新语言的计划由来已久。函数式编程语言是隔离的,运行在自己的VM里。互操作标准(C调用、COM、CORBA、XML)让语言集成变得困难。

F#的做法是使用一个已经被广泛采用的运行时,并在必要时采取折衷的办法。该语言在设计时就考虑了互操作性。像Scala和Swift这类较新的语言经常采用这种方法。

F#的做法是将对象包含进来,让它们适应于面向表达式的类型化函数式编程。虽为函数式语言,但F#也支持类、抽象类和接口。

//类定义
type Vector2D (dx:double, dy:double) =
    let d2 = dx*dx + dy*dy //对象固有属性
    // 导出属性
    member v.DX = dx 
    member v.DY = dy
    member v.Lenght = sqrt d2
    member v.Scale(k) = Vector2D (dx * k, dy * k) // 导出方法

F#支持类、接口和抽象类。它还有一个值得注意的新增特性对象表达式,让开发人员可以匿名定义上述类型。

type IMathExample =
    // 抽象方法
    abstract member Add: int -> int -> int

    // 抽象不可变属性
    abstract member Pi : float

// 使用对象表达式的接口实现
let obj = 
  { new IMathExample with
    member this.Add x y = x + y
    member this.Pi = 3.14 }

由于F#语言几年来一直在发展,所以Syme简单介绍了该语言的现状:

  • 开放、跨平台、中立、独立;
  • F#接受贡献;
  • 由非盈利性组织 F#软件基金会 管理;
  • 通过Xamarin提供移动开发和 工具 支持;
  • 由来自微软的Visual F#工具提供Windows和Azure支持;
  • F#编译服务 是许多F#工具项目的基础;
  • F# 4.1的开发正在进行中。

在谈及语言独立性时,Syme创造了一个新术语。他将“拟态独立性(mimetic independence)”定义为一种能力,借助这种能力可以将一种技术定义为独立于另外一种技术、联盟或既定利益的理念。虽然F#实现了拟态独立性,但我们仍然必须承认微软对此作出的巨大贡献。作为一个反例,Visual Basic就不符合这个条件,因为它完全依赖于微软。

查看英文原文: Don Syme Presents F# Design Principles at .Net Fringe


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

实现领域驱动设计

实现领域驱动设计

Vaughn Vernon / 滕云 / 电子工业出版社 / 2014-3 / 99.00元

领域驱动设计(DDD)是教我们如何做好软件的,同时也是教我们如何更好地使用面向对象技术的。它为我们提供了设计软件的全新视角,同时也给开发者留下了一大难题:如何将领域驱动设计付诸实践?Vaughn Vernon 的这本《实现领域驱动设计》为我们给出了全面的解答。 《实现领域驱动设计》分别从战略和战术层面详尽地讨论了如何实现DDD,其中包含了大量的最佳实践、设计准则和对一些问题的折中性讨论。《实......一起来看看 《实现领域驱动设计》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

SHA 加密
SHA 加密

SHA 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具