F 入門 第二章 F 基礎 第十二節 列表

2022-09-16 02:03:12 字數 1874 閱讀 2553

列表是資料的集合。

f#的列表是線性列表的一種,單方向列表。

單方向列表是基本的資料結構之一,一種攜帶指向下乙個元素的指標的資料結構。

列表中的元素必須是相同資料型別。

完全沒有元素的列表叫空列表,用來表示。   

另外,列表中的元素用";"來分隔。

列表

> ;;

val it : 'a list =

> [1];;

val it : int list = [1]

> [1;2;3;];;

val it : int list = [1; 2; 3]

> ["abc";"def";"ghi";];;

val it : string list = ["abc"; "def"; "ghi"]

//不同型別的資料不能放在同乙個列表中

> [1;"abc"];;

[1;"abc"];;

stdin(5,4): error fs0001: this expression has type

string

but is here used with type

int.

使用::與@將列表進行鏈結。

::是將元素與列表進行鏈結的運算子。

::的左側是元素,::的右側是列表。

注意應該放在::的左右兩側的資料型別不能相同。

列表與元素的鏈結 

> 1::;;

val it : int list = [1]

> 1::[2];;

val it : int list = [1; 2]

> 1::2::3::;;

val it : int list = [1; 2; 3]

> 1::2::3::[4;5;6];;

val it : int list = [1; 2; 3; 4; 5; 6]

//以下這樣是錯的.左右兩側資料型別相同.

> [1]::[2];;

[1]::[2];;

stdin(14,7): error fs0001: this expression has type

intbut is here used with type

int list.

//正確寫法如下所示

> [1]::[[2]];;

val it : int list list = [[1]; [2]]

使用@將列表與列表進行鏈結。

列表與列表的鏈結 

> [1;2] @ [3;4;5];;

val it : int list = [1; 2; 3; 4; 5]

> ["abc";"def"] @ ["ghi"];;

val it : string list = ["abc"; "def"; "ghi"]

> 1::[2;3] @ [4;5;6];;

val it : int list = [1; 2; 3; 4; 5; 6]

對於列表,有著更簡便的寫法。

使用[開始元素..最末元素],生成從開始元素到最末元素之間所有元素的列表。

同時,開始元素與最末元素之間按照給定的增量進行增長,一直到增加了增量後的值大於最末元素。預設的增量為1。

列表的簡便寫法

> [1..10];;

val it : int list = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]

> [1..2..10];;

val it : int list = [1; 3; 5; 7; 9]

> [1..3..20];;

val it : int list = [1; 4; 7; 10; 13; 16; 19]

F 入門 第二章 F 基礎 第二節 注釋

f 語言有兩種注釋方法。行注釋為只有一行的注釋。塊注釋是從 到 之間的注釋。行注釋 行注釋。只注釋這1行 print endline hello world 塊注釋1 塊注釋。這裡也是注釋。print endline hello world print endline函式的使用方法在後文詳述。一般情...

F 入門 第二章 F 基礎 第十節 引用型別

如果使用引用型別,就可以修改變數的值了。正常情況下,繫結的變數值是不能被修改的。使用ref將值變為引用型別。同時,使用 讀取引用型別的值,使用 寫入引用型別的值 這個 a 引用型別是microsoft.fsharp.core.ref a 型別的代名詞。引用型別的利用 將引用型別的值繫結給變數a le...

F 入門 第二章 F 基礎 第十節 引用型別

如果使用引用型別,就可以修改變數的值了。正常情況下,繫結的變數值是不能被修改的。使用ref將值變為引用型別。同時,使用 讀取引用型別的值,使用 寫入引用型別的值 引用型別的利用 將引用型別的值繫結給變數a let a ref hello 讀取a的值 a world 寫入a的值 a hi 讀取a的值 ...