摘要: 在F#里,值(Values)和函数(Functions)很难区分,因为函数也是值,在F#语法里他们是同一个概念。例如,在下面的代码里,第一行,把10分配给标识符n; 在第二行中,一个函数:add,并定义两个参数与运算。注意语法是多么的相似,唯一的区别是,函数名后有参数。第一行10是一个值,表达式a+b结果也是一个值。所以函数也代表一个值。另一个角度,不论是使用值还是函数,我们都只取它们的结果(值的结果即为值本身),所以本质上他们是相同的,对于使用他们的方法来说,结果的类型才是最重要的。#lightlet n = 10let add a b = a + blet addFour = add 4. 阅读全文
posted @ 2011-11-21 18:06 银河系漫游指南 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 直接量代表的常数值,类似于命令式编程中的定值。F#中有一套丰富的直接量。表3-1总结了一些。 Table 3-1.F# 直接量 例子F# 类型.NET 类型 描述"Hello\t ", "World\n"stringSystem.String一个字符串(\) 是转义字符@"c:\dir\fs", @""""stringSystem.String禁止转义(\) 的方法"bytesbytesbytes"Bbyte arraySystem.Byte[]存储在字节数组中的字符串 阅读全文
posted @ 2011-11-21 17:21 银河系漫游指南 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 大多数程序语言都有自己的关键字。关键字是语言的令牌,由编译器的功能而定。在F#中,不能使用关键字作为标识符的名称或类型的名称。以下是F#的关键字:abstract lsland lsras lxorassert match memberasr modbegin moduleclass mutable namespacedefault newdelegate nulldo ofdone opendowncast ordownto overrideelse ... 阅读全文
posted @ 2011-11-21 16:16 银河系漫游指南 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 标识符是指在F#里值的名称,可以在程序的后面引用的标识符定义的值。定义一个标识符,使用关键字let指定名称,等号符号,和一个表达式。表达式是任何一块代码,返回一个值的计算。 示例:let pi = 3.14 从命令式编程背景的大多数人来看,这会是一个变量赋值。有很多相似之处,但也有关键的不同。在纯函数编程中,一旦标识符被赋值,它的值就永远不变。 标识符可以指一个值或者函数,因为函数也代表值。这意味着F#没有真正概念的函数名和参数名,他们都是标识符。你可以写一个函数的定义,在let后两个或两个以上的标识符,等号符号,和一个表达式,如:let raisePowerTwo x = x ** ... 阅读全文
posted @ 2011-11-21 15:30 银河系漫游指南 阅读(569) 评论(0) 推荐(0) 编辑
摘要: 函数式编程(FP)是最古老的三大编程范式之一。 其他的函数式语言包括:1955年发明的IPL,1958年发明的Lisp,以及后期的SML, OCaml,Haskell, and Clean, among others等。F#语法与OCaml和Haskell最接近。 F#的巨大优势之一是,您可以使用多个范式并组合成最便捷的方式来解决问题。 阅读全文
posted @ 2011-11-21 14:19 银河系漫游指南 阅读(862) 评论(0) 推荐(0) 编辑
摘要: 各位大虾,原文的pdf文档在这里下载。第一章 简介什么是函数式编程为什么函数式编程很重要什么是F#谁在使用F#谁需要这本书下一步是什么第二章 如何获取、安装和使用F#获取F#在windows上安装F#在Linux上安装F#使用F#的不同方式安装这本书使用的软件总结第三章 函数式编程标识符关键字直接量定值与函数范围递归匿名函数操作符列表列表概括控制流类型与类型推导模式匹配定义类型异常与异常处理惰性求值第四章 命令式编程基元类型mutable关键字定义mutable记录类型ref类型数组数组概括控制流在概括上的遍历调用.NET库的静态方法和属性使用.NET库的对象与方法使用.NET库的索引... 阅读全文
posted @ 2011-11-21 12:00 银河系漫游指南 阅读(1279) 评论(0) 推荐(0) 编辑