列表是資料的集合。
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的值 ...