F#入门-第二章 F#基础-第十二节 列表(list)

本文介绍了F#语言中列表的基本概念及其操作方法,包括不同类型的列表构造、元素连接及列表合并,并展示了列表的简便写法。

    列表是数据的集合。
    F#的列表是线性列表的一种,单方向list。
    单方向列表是基本的数据结构之一,一种携带指向下一个元素的指针的数据结构。
    列表中的元素必须是相同数据类型。

    完全没有元素的列表叫空列表,用[]来表示。   
    另外,列表中的元素用";"来分隔。

 

列表
> [];;
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
        int
but 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]

 

 

列表的简便写法
> [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]


关于常州蓝博纺织机械有限公司的产品被常州蓝博节能设备有限公司非法假冒的声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值