b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

F# 20分钟快速上手(一)(2)

电脑杂谈  发布时间:2016-04-19 14:52:38  来源:网络整理

现在考虑下面的代码,它为其中的一个参数提供了“类型注解(type annotation)”,告诉编译器期望的类型。因为x标为“string”,“+”操作只定义在两个string间,因此y也必须为string类型,返回值是两个字符串拼接的结果。

y;;
valconcat:

;;
valit:

后面我们将讨论类型推演的更多高级主题,现在您只要享受f#编译器的智能带来的方便就好了。

let numbers = [1 .. 10](f# lists)

这行代码声明了一个列表(list),其元素是从1至10。如果您用的是[|1 .. 10|],F#会创建一个.NET的整型数组(array)。而在f#中,列表是一个不可变的链表(linked list),这也是函数式编程的基础。试着将这些代码输入到FSI中(记住添加“;;”):

//Definealist
]

//Attachitemtofront(cons)
::vowels

//Concattwolists

我将在本系列的第二篇中更深入地介绍列表。

let squares = List.map square numbers

现在我们有了一个整型列表(numbers)和一个函数(square),我们希望创建一个新的列表,它的每一项是对numbers的每一项进行square运算后的结果。

幸运的是,List.map可以做到。考虑下面的例子:

];;
valit:boollist

代码(fun x -> x % 2 = 0)定义了一个匿名函数,称为lamdba表达式,接受一个参数x,返回值为表达式“x % 2 = 0”的结果,也就是判断x是否为偶数。

注意我们刚才做的——将一个函数作为参数传递给另一个函数。在C#中这个并不容易。但在f#可以很清楚地表达出来,而且代码很简洁。将函数像值一样传递被称为“一等函数(first order functions)”,也是函数式编程的基础。

printfn "N^2 = %A" squares

printf是打印文本到控制台窗口的一种简单而又类型安全的方式。要更好地了解printf,考虑下面的例子,它打印一个整数、浮点数和字符串,。

).ToString());;

valit:unit=()

%d,%f,%s分别是int、float、string的占位符。%A则可用于打印任何值。

Console.ReadKey(true) (.NET互操作)

我们程序的最后一行只是简单地调用了System.Console.ReadKey方法,这样可以让程序在关闭其暂停。因为F#建立在.NET的基础上,您可以在f#中调用任何.NET类库——从正则表达式到WinForms。代码“open System”用于打开命名空间,类似于C#中的using。

现在我们已经有了F#的基础知识,可以继续学习更有趣的基础类型和f#概念了,希望您关注第二篇文章!

原文链接:。

以上就是关于f#的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-1936-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...