Haskell List相关操作

时间:2024-05-29 08:06:07

一、List中只能存放相同类型的元素。

  ++:将两个List合并成一个List。例,[1,2,3]++[4,5,6],结果是[1,2,3,4,5,6]。

    : :将“:”前面的元素添加到“:”后面的List中。新添加的元素在List的头部位置。例,1:[2,3,4,5,6],结果是[1,2,3,4,5,6]。

   !! :取List下标位置的元素。例,[1,2,3,4,5,6]!!0,结果是1。

  elem:判断某个元素是否存在于List当中。例,elem 1 [1,2,3,4,5,6],结果是true。中缀形式,1 `elem` [1,2,3,4,5,6]。

  PS:中缀形式中的 ` 不是单引号,是键盘上“~”键下面的符号。

二、比较List。

      [3] > [2,1]的结果是true。

  head:取出List的第一个元素。

  tail:取出除List第一个元素外的所有元素。

  last:取出List的最后一个元素。

  init:取出除List最后一个元素外的所有元素。

  length:返回List的长度值。

  null:判断List是否为空。

  reverse:返回一个List的反转List。

  maximum:取List中的最大值。

  minimum:取List中的最小值。

  sum:计算List元素中的和。

  take:取List的前N个元素。例,take 2 [1,2,3,4,5,6],结果是[1,2]。

drop:取List的后X个元素。例,drop 2 [1,2,3,4,5,6],结果是[3,4,5,6]。

三、Range相关

  [1..10] 相当于 [1,2,3,4,5,6,7,8,9,10]

  ['a'..'g'] 相当于 ['a','b','c','d','e','f','g']

  [3,6..10] 相当于 [3,6,9]

  cycle:无限重复后面的内容。例,take 3 (cycle [1,2]),结果是[1,2,1]。

  repeat:无限重复后面的元素。例,take 2 (repeat 1),结果是[1,1]。

  replicate:重复N次后面的元素。例,replicate 2 [1,2],结果是[[1,2],[1,2]]。

四、集合的表示

  mod:取余操作。

  odd:判断一个数是否是奇数。

  [x*2|x<-[1..10]] 相当于 [2,4,6,8,10]

  [x|x<-[1..10],odd x,mod x 3 == 0] 相当于 [3,9]