最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

  • 2016-09-18
  • 本文字数:986 字

    阅读完需:约 3 分钟

在.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

2016-09-18 19:002889
用户头像

发布了 1008 篇内容, 共 374.1 次阅读, 收获喜欢 340 次。

关注

评论

发布
暂无评论
发现更多内容

爬虫系统的核心:如何创建高质量的HTML文件?

SoFlu软件机器人

OmniPlan Pro 4 for Mac(项目流程管理工具) 4.5.5激活版

mac

项目管理软件 苹果mac Windows软件 OmniPlan Pro

使用Blender 在影片剪辑上创建粘滞标签

3D建模设计

blender

关于假冒我司关联公司进行欺诈活动的严正声明!

力软低代码开发平台

新华社《中国扫描十年发展图鉴》:扫描全能王为3亿用户带去“掌心里的便利”

合合技术团队

人工智能 合合信息 扫描全能王 新华社

2023年13个面向初学者最佳免费3D建模软件

3D建模设计

3D 建模

火热的低代码,是时候系统的来学一学了!

互联网工科生

低代码 应用开发 数字化工具

海外运营视频直播App,服务器放在哪?

山东布谷科技胡月

语音聊天APP源码 国际版语音直播APP 交友软件开发 海外直播App开发 直播交友源码

教师节丨校企合作重磅福利,数据科学校内赛与数据科学数据科学教学实训工作坊免费申办

ModelWhale

数据科学 教学 教师节 高等教育 数据科学竞赛

和鲸支持!2023 中国高校计算机大赛大数据挑战赛圆满收官

ModelWhale

大数据 清华大学 高等教育 数据科学竞赛 计算机大赛

Claris FileMaker Pro for mac(数据库软件) 20.1.2.204 中文激活版

mac

数据库软件 苹果mac Windows软件 Claris FileMaker Pro

软件测试|比Selenium更加强大的Playwright

霍格沃兹测试开发学社

低代码平台:程序员的应用开发好帮手

高端章鱼哥

低代码 应用开发 企业级应用 JNPF

如何使用聊天GPT自定义说明

3D建模设计

ChatGPT

【压力测试指南】没有任何文档,小白也可以做的压力测试

优测云服务平台

性能测试 接口测试 压力测试 测试技术干货

AI 时代的向量数据库、关系型数据库与 Serverless 技术丨TiDB Hackathon 2023 随想

PingCAP

数据库 Serverless TiDB

Boot Camp分区备份还原 Winclone pro 10激活安装包

mac大玩家j

Mac软件 迁移助手

QCon大会实录:PB级数据秒级分析-腾讯云原生湖仓DLC架构揭秘

腾讯云大数据

数据仓库 数据湖

利用观测云实现业务数据驱动的弹性扩缩容

观测云

微服务 监控告警 自定义编程

和鲸科技入选创业邦“2023值得关注的125家AIGC企业”榜单,创新实力再获认可

ModelWhale

数据科学 大模型 AIGC

软件测试|Flask框架-接口使用

霍格沃兹测试开发学社

C++提高篇:深入理解纯虚函数和抽象类

树上有只程序猿

纯虚函数 C++

性能最佳实践

FunTester

交割合约交易所开发APP

西安链酷科技

合约量化 合约交易所开发 量化合约

4 个你可能不知道的 Python 迭代工具过滤器函数

3D建模设计

Python

2023年19款最佳3D打印软件

3D建模设计

3D打印

百度网盘“第二大脑”产品探析,AI技术让记忆更轻松

科技热闻

F#创建者Don Syme谈F#设计原则_.NET_Pierre-Luc Maheu_InfoQ精选文章