本文翻译自F# Overview (I.) - Introduction
在我的学士论文里包含对于F#编程语言重要方面的介绍,我想把它扩展并发布是有用的.这篇短文介绍了F#所有有趣的功能,但是它比预期的要长,所以我决定把它分成三部分.当然,这个系列不会教你关于F#的一切,但它试图包含F#的主要设计目标并(希望)提供所有使F#有趣和有价值学习的功能.在第一部分中,我将简短介绍F#.
介绍 F#
在一篇F#的文章中,F#的设计者给出了下述描述:"F#是一种.net环境下集多家所长的语言,它植根于核心ML语言设计并在很大程度上与OCaml兼容."也就是说F#语言的语法和ML或OCaml比较类似(如果你不知道这些语言不用担心,我们马上会看到一些例子),但是F#是面向.net的.这意味着它可以与.net组件协同工作.
这段描述提到的另外一个重要方面是F#是集多家所长的语言.这意味着F#试图集合世界许多语言的优点.第一个是函数式编程(在这方面很大程度上影响F#设计的语言有ML,OCaml等),它有很长的历史并正在变的越来越重要因为一些吸引人的特性,包括易于测试和并行,还可以用一种面向对象代码不擅长的方式进行扩展.
第二个被广泛用于面向对象编程,它使得F#可以与其它.net语言可以互操作.F#中经常用简单的数据类型(众所周知并且较少变化)组成一组简单的函数来实现复杂的功能...
最后,第三个F#支持的是面向语言编程(Language Oriented Programming)(在这方面很大程度上影响F#设计的语言有ML,Haskell,OCaml和LINQ),一般来说,面向语言编程专注于开发用于结构化语言(像XML的声明性语言,或像F#中的某个子集的充分强大的语言)的执行器,在本文里我将重点放在F#提供的给予一段代码不同含义的两种技术.在编程理论中,这常被叫做内部领域特定语言(internal domain specific languages),因为在宿主语言中的这些代码是专门设计来用于解决某些特定领域的问题的.一个这种语言(和相关的执行器)的例子是一段顺序的代码,却是异步执行的(在F#可以用计算表达式(computation expressions)实现),或者F#中的查询,却像SQL由数据库服务器执行(可以用F# Quotations实现).
F#概述 - 链接
在本系列文章的其余部分我们将看到F#支持的这三个方面,我们用函数式编程开始,接下来是面向对象编程和与.net的互操作性,最后是面向语言编程和使之可能的重要.net和F#类库
F#概述(一) 介绍
F#概述(二) 函数式编程
F#概述(三) 面向对象和命令式编程
F#概述(四) 面向语言编程
可以在上边的原文地址下载本系列的整个pdf文档
其它F#资源
本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。