成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談函數式編程語言 F#

開發(fā) 開發(fā)工具
F#是由微軟發(fā)展的為微軟.NET語言提供運行環(huán)境的程序設計語言。它是基于Ocaml的,而Ocaml是基于ML函數程序設計語言的。這是一個用于顯示.NET在不同編程語言間互通的程序設計。本文簡單介紹這個函數式編程語言,一起來看。

 F#是一個基于.NET框架的多模式編程語言、是一種.NET平臺上的函數式編程語言、更是一個高效的.NET程序語言.就像C#和VB.NET,F#可以利用.NET的核心類庫,如WPF,WCF,VSTO等等,通過F#您甚至可以使用XNA編寫XBox游戲.僅僅如此并不意味著您應該去學習它.那為何要使用F#呢?

作為一種函數式編程語言,F#使得某些領域的編程要比命令式編程(如使用C#)更為容易.并行編程(Parallel Programming)和面向語言編程(Language-Oriented Programming)是其中的兩個領域.

F#語言交互式設計窗口

如果您曾經編寫過.NET應用程序,并感覺自己在努力使用手頭的語言表達自己的想法,也許F#就是您在尋找的.F#主要是由Microsoft Research 和 Visual Studio 小組協作開發(fā)的,并采納了F#社區(qū)和一些主要使用者的意見.F#為Visual Studio 2010帶來了很大的改觀.

因為替代了局部程序中的元組使工作變的簡單了.在異步編程和強類型對于浮點編碼方面也提供的不錯的解決方式.可以說F# 是Visual Studio 2010中結合了眾多優(yōu)點的編程語言.

F#的優(yōu)勢

在F#中函數可以被視為值,可以傳遞給其他函數,你可以方便地編寫高階函數;

F#支持組合式編程,你可以通過使用簡單的操作符語法來組合函數;

F#提供了支持函數式編程風格的類型,如針對簡單數據集合的元組和針對結構化符號數據的discriminated unions;

F#提供了許多不可變的數據結構,如不可變的列表、映射、集合、序列和記錄等;F#支持異步編程,并且提供了使這種編程比以往更容易的結構;

Visual F#中還包括了一個F#解釋器,F#互動器(fsi.exe),它能夠以交互方式編譯并執(zhí)行代碼;F#支持延遲計算,這可以使您直到需要結果時才進行計算;

F#支持面向對象語言特征,除了讓您使用F#語言開發(fā).NET框架API外,這種特征可以使F#程序能夠充分地訪問.NET框架.

當然除此以外,F#還支持如面向對象語言特征,支持命令式編程結構,支持數學計算等特性.在VS2010中F#除了特征廣泛外,它的特點還包括比如說簡單簡潔的句法、并行和異步的編程.

F#簡單簡潔的句法:

F#像C#一樣,是一種強制型的語言.但是我也可以使用類似在Python中那樣的方式.既輕量級的,靈活的,數學類的編程方式.

  1. let data = (1,2,3)  
  2. let rotations (x, y, z) =  
  3. [ (x, y, z);  
  4. (z, x, y);  
  5. (y, z, x) ]  
  6. let derivative f x =  
  7. let p1 = f (x - 0.05)  
  8. let p2 = f (x + 0.05)  
  9. (p2 - p1) / 0.1  
  10. let f x = 2.0*x*x - 6.0*x + 3.0  
  11. let df = derivative f  
  12. System.Console.WriteLine("The derivative of f at x=4 is {0}", df 4.0) 

 

其運行結果為:“The derivative of f at x=4 is 10”.

在并行和異步編程上,.NET Framework 4 和Visual Studio 2010中,包含了一個關于并行程序開發(fā)的龐大文檔和工具庫.F#提供了一種強健的編程模式和靈活優(yōu)秀的功能,使這些顯現的更為直觀.最為重要的是,我們可以在過去習慣了的線性編程模式下進行異步編程.

  1. let http url =  
  2. async { let req = WebRequest.Create(Uri url)  
  3. let! resp = req.AsyncGetResponse()  
  4. let stream = resp.GetResponseStream()  
  5. let reader = new StreamReader(stream)  
  6. let! contents = reader.AsyncReadToEnd()  
  7. return contents }  
  8. let sites = ["h ttp://bing.com""h ttp://microsoft.com";"h ttp://msdn.com""ht tp://msnbc.com"]  
  9. let htmlOfSites =  
  10. Async.Parallel [for site in sites -> http(site)]  
  11. |> Async.RunSynchronously 

 

以上就是Visual Studio 2010中F#語言簡單介紹,在使用過程中肯定會有更多的體驗.

隨著FP在程序設計中的重要性日漸凸顯,F#身為微軟***的FP語言,其位置特殊,容易引起關注。對一部分人來說,這語言所帶來的一些特性以及其對FP的特性的全面支持(而且做得都比較好,至少目前是這樣),可能會帶來一次大的革變。

【編輯推薦】

  1. 詳解F#異步及并行模式中的輕量級代理
  2. 最容易令初學者混亂的F#命令
  3. F#中關于代理的基本使用
  4. 詳解F# 2.0中兩大運行時的簡單應用
  5. 用好F#操作符解決溢出異常 實現高效算術操作
責任編輯:于鐵 來源: 華軍資訊
相關推薦

2010-01-07 10:04:18

F#函數式編程

2009-11-09 17:51:51

F#函數式編程

2009-08-18 18:01:20

F#函數式語言

2009-06-22 13:43:01

F#函數式編程

2010-07-09 14:12:00

ScalaF#C#

2010-07-07 13:11:20

ScalaF#C#

2010-05-13 09:21:44

F#Visual Stud

2012-11-06 10:01:35

ContinuatioF#

2010-01-26 08:25:06

F#語法F#教程

2015-03-15 01:55:25

編程語言排行榜

2010-01-15 08:33:13

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

2010-04-07 16:51:59

F#

2019-07-11 08:00:00

JavaScriptJulia編程語言

2009-08-13 17:39:48

F#數據類型Discriminat

2021-07-14 13:12:51

2018-05-23 08:41:14

編程語言Azure Searc數字化

2009-08-19 09:42:34

F#并行排序算法

2021-08-23 15:05:21

PyretJavaScript編程

2009-09-10 14:18:59

Functional F#

2009-11-16 09:05:46

CodeTimer
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一区二区福利 | 久久久久久女 | 久操亚洲 | 久久久久久一区 | 男人av在线 | 一区二区三区精品视频 | 国产欧美一区二区三区日本久久久 | 国产在线精品一区二区 | 国产成人小视频 | 国产精品a久久久久 | www网站在线观看 | 99综合在线 | 日本久久一区二区三区 | 久久麻豆精品 | 欧美综合久久久 | 国产高清视频 | 国产片侵犯亲女视频播放 | 色婷婷综合网 | 国产九九精品视频 | 中国一级特黄真人毛片免费观看 | 成人三区四区 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 在线激情视频 | 高清一区二区三区 | 韩国av网站在线观看 | 亚洲福利一区二区 | 国产精品久久久久久久久免费高清 | 一级毛片视频在线观看 | 久久精品国产一区二区电影 | 国产乱码久久久久久 | 99pao成人国产永久免费视频 | 在线视频第一页 | 日韩高清一区 | 免费三级网站 | 亚洲一区二区三区高清 | 国产超碰人人爽人人做人人爱 | 亚洲 精品 综合 精品 自拍 | 99视频在线免费观看 | 亚洲视频在线免费观看 | 国产日韩在线观看一区 | 日本精品视频 |