自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

F#簡(jiǎn)明教程一:F#與函數(shù)式編程概述

原創(chuàng)
開(kāi)發(fā) 開(kāi)發(fā)工具
F#是微軟.NET平臺(tái)上一門(mén)新興的函數(shù)式編程語(yǔ)言,通過(guò)函數(shù)式語(yǔ)言,開(kāi)發(fā)人員可以輕松應(yīng)對(duì)多核多并發(fā)時(shí)代的并行計(jì)算和分布問(wèn)題。本文是F#簡(jiǎn)明教程的第一章,帶您走進(jìn)F#和函數(shù)式編程。

【51CTO獨(dú)家特稿】F#是微軟.NET開(kāi)發(fā)平臺(tái)的一門(mén)編程語(yǔ)言,其最大的特點(diǎn)是對(duì)函數(shù)式編程(FP,F(xiàn)unctional Programming)的引入;F#對(duì)面向?qū)ο螅∣OP)編程的支持也很出色,使用F#語(yǔ)言,開(kāi)發(fā)人員可以自由選擇函數(shù)式編程或面向?qū)ο缶幊虂?lái)實(shí)現(xiàn)他們的項(xiàng)目。此外,F(xiàn)#還可以與.NET平臺(tái)上C#、VB等其他編程語(yǔ)言緊密結(jié)合。

#T#CPU多核心化和云計(jì)算的背景下,函數(shù)式編程可以很好的解決多并發(fā)運(yùn)算的問(wèn)題(在處理并發(fā)問(wèn)題方面,面向?qū)ο缶幊檀嬖谝欢ǔ潭鹊墓逃腥毕荩热珙惡蛯?shí)例化過(guò)程中產(chǎn)生的一些副作用,詳細(xì)請(qǐng)參考51CTO.com對(duì)另一門(mén)函數(shù)式編程語(yǔ)言Erlang的視頻訪談《因并發(fā)而生 因云計(jì)算而熱:Erlang專家訪談實(shí)錄》)。微軟看到了這個(gè)趨勢(shì),試圖通過(guò)專門(mén)為函數(shù)式編程打造的F#語(yǔ)言提升.NET平臺(tái)在并發(fā)處理、多核多并發(fā)方面的能力,進(jìn)一步提升開(kāi)發(fā)人員的生產(chǎn)力和代碼運(yùn)行效率。

在2009年的TechED上,51CTO.com就F#和函數(shù)式編程的問(wèn)題視頻采訪了微軟MVP趙頡老師,我們可以采訪視頻了解F#和函數(shù)式編程最近的發(fā)展,詳細(xì)請(qǐng)參考《TechED 09視頻專訪:F#與函數(shù)式編程語(yǔ)言》。

F#小背景:看似年輕的F#已經(jīng)有近10年的歷史。最初由微軟研究院的Don Syme于2002年立項(xiàng)研發(fā);F#在2005年推出第一個(gè)版本,2007年底,微軟宣布F#進(jìn)入產(chǎn)品化階段。在不斷的改進(jìn)中,F(xiàn)#從C#、Linq和Haskell中吸收了很多優(yōu)點(diǎn)。

F#編程起步

F#可以運(yùn)行在.NET Framework 2.0版本以上的平臺(tái)。如果你的Visual Studio之前沒(méi)有安裝F#,可以從微軟F# Developer Center獲得(http://msdn.microsoft.com/en-us/fsharp/default.aspx)。

不能免俗,讓我們來(lái)看看F#的Hello World代碼:

  1. #light  
  2. System.Console.WriteLine(“This is one hello”)  
  3. printfn “This is another hello” 

 

將代碼保存為hello.fs文件后,我們需要在命令行中通過(guò)fsc.exe編譯生成一個(gè).NET程序集。在命令行中的編譯代碼如下:

  1. fsc hello.fs 

通過(guò)上面的代碼,我們就得到了常見(jiàn)的可執(zhí)行文件(.exe文件),這就是我們F#的起步——hello.exe。

F#小提示:F#是.NET平臺(tái)上的一個(gè)編譯型語(yǔ)言,但仍然可以像腳本語(yǔ)言一樣運(yùn)行??梢允褂肰isual Studio或fsi.exe(在F#安裝目錄下的bin目錄)進(jìn)行F#腳本的執(zhí)行。

代碼解讀

讓我們來(lái)仔細(xì)看看hello.fs文件里的代碼

◆程序首先以“#light”開(kāi)始,在以后的F#之路上,我們會(huì)經(jīng)??吹健?light”;大多數(shù)時(shí)候,“#light”總是出現(xiàn)在F#程序的開(kāi)始位置,這是F#輕量級(jí)語(yǔ)法的標(biāo)識(shí);在最新的F#版本中,#light將作為默認(rèn)選項(xiàng)。

◆“System.Console.WriteLine”調(diào)用一個(gè).NET基礎(chǔ)類(熟悉C#或VB.NET的朋友會(huì)相當(dāng)熟悉)用來(lái)初始化一些必要的功能。

◆“printfn”是F#的一個(gè)常用函數(shù),他會(huì)將雙引號(hào)中的參數(shù)輸出到控制臺(tái)上顯示。

跟其他程序的Hello World一樣,這段F#代碼簡(jiǎn)單易懂,看著跟其他語(yǔ)言寫(xiě)就的Hello World還有些相似;但作為函數(shù)式編程語(yǔ)言,F(xiàn)#的語(yǔ)法和編程中的思路卻有很大的不同。在下周的章節(jié)中,我們將深入F#編程,講解F#的類型系統(tǒng)及編譯機(jī)制。

責(zé)任編輯:佚名 來(lái)源: 51CTO.com
相關(guān)推薦

2010-01-26 08:25:06

F#語(yǔ)法F#教程

2010-01-15 08:33:13

F#F#類型推斷F#教程

2011-06-09 09:52:41

F#

2009-11-09 17:51:51

F#函數(shù)式編程

2010-07-07 13:11:20

ScalaF#C#

2010-07-09 14:12:00

ScalaF#C#

2010-04-07 16:51:59

F#

2009-08-18 18:01:20

F#函數(shù)式語(yǔ)言

2012-11-06 10:01:35

ContinuatioF#

2009-09-10 14:18:59

Functional F#

2009-06-22 13:43:01

F#函數(shù)式編程

2009-08-19 09:42:34

F#并行排序算法

2009-08-13 17:39:48

F#數(shù)據(jù)類型Discriminat

2018-05-23 08:41:14

編程語(yǔ)言Azure Searc數(shù)字化

2012-03-12 12:34:02

JavaF#

2009-11-16 09:05:46

CodeTimer

2009-12-04 09:16:44

Visual Stud

2010-03-26 19:22:08

F#代理

2009-12-14 09:04:10

F#運(yùn)算符

2009-08-13 17:25:21

F#入門(mén)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)