visual f#
VisualF#由微软发展成为微软.NET语言提供运行环境的程序设计语言。Visualf#是多元化编程语言,它支持函数式、命令式和面向对象的混合编程风格。VisualF#可用于开发应用程序或用F#码为其他.NET应用程序做必要的扩充。F#是.NET编程语言家族中第一个基于Ocaml并十分类似于它的函数语言。F#语言集安全、性能、脚本与ModernRuntime系统(Java虚拟机和微软通用Runtime)等多种优势于一体,并支持Python等交互式脚本语言、强类型推理、ML的安全性。另外,F#语言可以访问access.net库以及其他数据库工具软件。
基本信息
- 外文名
visual f#
- 开发
微软
- 类型
程序设计语言
- 领域
网络
Visual F# 概述
Visual F# 由 微软发展成为微软 .NET语言提供运行环境的程序设计语言。Visual f#是多元化 编程语言,它支持函数式、命令式和面向对象的混合编程风格。Visual F# 可用于开发应用程序或用 F# 码为其他 .NET 应用程序做必要的扩充。 F# 是 .NET 编程语言家族中第一个基于 Ocaml 并十分类似于它的函数语言。这是一种用于显示.NET在不同 编程语言间互通的 程序设计。
F#语言集安全、性能、脚本与Modern Runtime系统(Java 虚拟机和 微软通用Runtime)等多种优势于一体,并支持Python等交互式 脚本语言、强类型推理、ML的安全性.另 外,F#语言可以访问access@net库以及其他数据库工具软件.
与另外一个新 微软语言的精神相同,F#编译器和工具将在微软公共许可协议(Microsoft Public License)下开源。这一许可协议是所有 微软许可协议中最宽松的一个,基本来说你只要保留版权声明并且不对作者提出控告,那么你就可以做你想做的任何事情。
Visual Studio 2010中已正式包含 Visual F#,作为一种常规的开发工具发布。 作 为 .NET Framework 家族的新成员,F# 提供 类型安全、性能以及类似 脚本语言的工作能力,所有这些都是 .NET 环境的一部分。此函数式语言由 Microsoft 研究院的 Don Syme 发明,作为 CLR 的 OCaml 语法兼容变体,但 F# 已经迅速地从科研转为投入实际应用。
随着 函数式编程的概念通过 .NET 泛型和 LINQ 等技术越来越多地渗入主流语言(例如 C# 和 Visual Basic),F# 在 .NET 社区里的知名程度也不断提高——因此,2007 年 11 月 Microsoft 宣布将 F# 确定为受支持的 .NET 编程语言。
多年来,大家一直认为函数式语言领域(ML、Haskell 等)更适合用于学术研究,而不适用于专业开发。但这并不代表这些语言没有过人之处。事实上,.NET 的一些重要的功能增强(例如 泛型、LINQ、PLINQ 和 Futures)都是将一些 函数式编程概念全新应用到语言所致。以往对这些语言的关注程度不高主要是因为它们的目标平台与专为 Windows® 编写程序的开发人员关系不大、不能与底层平台很好集成,或者不支持关系数据库访问、XML 解析和进程外通信机制等主要功能。
但是,CLR 及其“多种语言,单一平台”的方法将使此类语言在 Windows 开发中的应用越来越广泛。并且顺理成章地引起在一线工作的程序员们的注意。F# 即是这样一门语言。
为什么要使用 F#
对于小部分 .NET 程序员来说,学习一门 .NET Framework 函数化语言无疑将使自己在编写功能强大软件方面前进一大步。而对其他程序员来说,学习 F# 的理由就因人而异了。F# 能为开发人员提供哪些益处?
随着 多核 CPU 的普及,安全 并发程序已成为过去三年来的关注焦点。函数式语言倡导一种固定不变的数据结构,可在 线程和机器之间传递,而无需担心 线程安全或原子访问,开发人员可以利用这一特点支持并发操作。函数式语言还可更轻松地编写更支持并发特性的库,如稍后将在本文中介绍的 F# 异步 工作流。
尽管对于专攻 面向对象开发的程序员而言,可能对这种语言感觉不是这么强烈,但在很多情况下,函数式程序确实可以简化某些应用程序的编写和维护。例如,编写一个将 XML 文档转换成其他格式数据的程序。虽然完全可以通过编写一个 C# 程序,让它解析整个 XML 文档并应用各种 if 语句确定在文档中的不同位置采取何种措施,但实际上更好的方法是编写可扩展样式表语言转换 (XSLT) 程序。当然,XSLT 肯定包含大量的 内置函数机制,如同 SQL 一样。
F# 强烈建议不要使用 空值 (null),而是提倡使用固定不变的数据结构。这些特性可以减少需要编写的特例代码量,从而有助于降低编程出错的频率。
使用 F# 编写的程序还更加简洁。您可以切实地从两方面减少键入的内容:击键次数更少并且必须要向编译器通告 变量类型、参数或返回类型的位置点也更少。这意味着需要维护的代码将大大减少。
F# 具有与 C# 相似的性能特点。但是,与简洁程度相似的语言(特别是那些动态和 脚本语言)相比,它的性能特点要好得多。并且,F# 也包含通过编写程序段并交互式执行查看数据的工具,这一点与许多 动态语言类似。
目前主要用途
在 Visual Studio里,F#并不倾向于被单独使用。 微软鼓励开发人员使用F#来构建应用程序的核心,发布一个高质量的F#核心工具,可以增强Visual Studio的实力,让其成为一个具有丰富界面开发能力的面向对象的 编程环境。功能性 编程语言将计算看做是数学函数的赋值,对于需要使用大量数学符号的某些领域专业人员来说, F#语言的数学特性颇具吸引力。F#也许终将成为程序核心部分设计的首选,而C#与VB等将在用户界面 交互设计方面继续发挥其强大的潜力。