F#教程:List內包式

來源:互聯網
上載者:User

F#的List和數組中,有一種被稱為內包式的特殊標記方法。使用了這些,list相關的代碼就會變得很簡潔。我們就試著寫如下代碼:

let evenarray = [| for x in 0..10 -> x*2 |]
printfn "%A" evenarray

運行結果是:

[|0; 2; 4; 6; 8; 10; 12; 14; 16; 18; 20|]

產生list的代碼如下:

let tupleList = [ for x in 0..5 -> x, x * x ]
printfn "%A" tupleList

這次啟動並執行結果是:

[(0, 0); (1, 1); (2, 4); (3, 9); (4, 16); (5, 25)]

如果不使用內包的話,代碼可能非得如下這樣不可:

let evenarray = Array.create 11 0
for i in 0..10 do
     evenarray.[i] <- i * 2

是不是感覺有點麻煩啊?

對於list,如果不使用list內包式是不是應該如下這樣啊?

let mutable evenlist = []
for i in 0..10 do
     evenlist <- List.append evenlist [(i * 2)]

不使用mutable的話好像還不行。這裡的append有點像C#的靜態函數吧?

有了內包式,就不要寫這麼麻煩的代碼了。

此外,產生增量遞增的數組或list的時候還可以使用“初始值..增量..終止值”的寫法:

let a = [| 0..2..20 |]
let b = [100..-10..0]

使用F#還真的可以寫很簡潔的代碼!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.