通用語言規範(common language specification,cls)確保任何具有一致性的.net語言能訪問被其他語言建立的函式庫。這意味著命令式的語言,如vb和c#,能呼叫主要為f#建立的函式化函式庫。實際上,許多都能直接地轉換為c#**。
\ dustin campbell通過演示乙個能被大量簡化的c#表示式是如何地簡單來說明這種方式。它以如下**開始:
\ int a = new int[20];
for (int x = 0; x \u0026lt; a.length; x++)
a[x] = x + 1;
\ 如果寫成f#即是:
\ let a = array.init 20 (fun x -\u0026gt; x + 1)
\
不使用特殊的**技巧,f#**可以表述為(以一種更宣告化的方式),「建立乙個有20個元素的陣列,並使用這個函式初始化每個元素。」f#版本乙個有趣的特性是陣列的型別不需要宣告。因為編譯成能推斷傳遞到函式的結果(fun x -\u0026gt; x + 1)將會是整數,「a」必須是乙個整數陣列。
對我來說,這**是那樣的優美。另外,這是宣告式的而非命令式;它描述什麼將被完成而不是明確地規定將如何完成。\當我看到如此簡練的**,我立刻開始試圖想找到f#中的那些方面,有助提高我日常工作中的c#**的書寫效率。
dustin繼續展示了乙個c#函式,允許使用這樣的語法。
\ var a = arrayex.create(20, x =\u0026gt; x + 1);
\ 需要提醒的是這樣的技術在vb中同樣可以工作。
\檢視英文原文:
API函式中的縮寫
1 去掉所有的不在詞頭的母音字母如screen寫成scrn,primtive寫成prmv 2 使用每個單詞的頭乙個或幾個字母如channel activation寫成chanactiv release indication寫成relind 3 使用變數名中每個有典型意義的單詞如count of fa...
F 中的Tuples 函式型別和引數柯里化
tuples 元組 簡介 tuples 元組 作為乙個基本型別在f 中被廣泛的被應用,顧名思義,乙個tuples是兩個或多個值的集合,基本形式如下 let t2 3,foo t2 int string let t3 4,bar true t3 int string bool 其中,小括號是可選的,如...
mfc中mysql的API函式
mysql affected rows 返回被最新的update,delete或insert查詢影響的行數。mysql close 關閉乙個伺服器連線。mysql connect 連線乙個mysql伺服器。該函式不推薦 使用mysql real connect 代替。mysql change use...