读书人

「学习小结-Haskell-2」Haskell重要数

发布时间: 2013-02-18 10:50:49 作者: rapoo

「学习总结-Haskell-2」Haskell重要数据结构:List

Haskell 重要数据结构 - ListTable of Contents1 Haskell 基本知识2 Haskell 重要数据结构 - List2.1 List基本知识2.2 List 相关函数2.3 利用List特性编写程序List 表示

例1 基本元素为整数的List

ghci>let tList = [1,2,3,4]ghci>tList [1,2,3,4]

例2 基本元素为List的List

ghci>[[1,2],[3],[4,5,6]][[1,2],[3],[4,5,6]]

例3 基本元素为字符的List,即字符串

ghci>['h','e','l','l','o']"hello"

例4 List列举表示

ghci>[1..10][1,2,3,4,5,6,7,8,9,10]ghci>['a'..'e']"abcde"ghci>[2,4..10][2,4,6,8,10]ghci>[5..2][]ghci>[5,4..2][5,4,3,2]

例5 List的描述表示

ghci>[x | x <- [1..10], x > 3, x < 7][4,5,6]ghci>[x + y | x <- [1,2,3], y <- [4,5]][5,6,6,7,7,8]

例6 List是什么 List就是相同类型的元素粘在一起

ghci>3:[4,5][3,4,5]ghci>3:4:[5][3,4,5]ghci>3:4:5:[][3,4,5]
List基本操作List 连接
ghci>[1,2,3] ++ [4,5][1,2,3,4,5]
List 元素的访问
ghci>[4,2,1] !! 21ghci>[4,2,1] !! 12ghci>[4,2,1] !! 04ghci>"hi,jack" !! 2','
List 的比较

List的比较方式是按字典顺序

ghci>[1,2] > [2,3]Falseghci>[1,2] > [1,1]Trueghci>[1,2,3] > [1,2]Trueghci>[1,2,-1] > [1,2]Trueghci>[1,2] > [1,2,3]False
head
ghci>head [3,1,4]3
tail
ghci>tail [3,1,4][1,4]
init
ghci>init [3,1,4][3,1]
last
ghci>last [3,1,4]4
length
ghci>length [3,1,4]3
null
ghci>null [3,1,4]Falseghci>null []True
reverse
ghci>reverse [1,2,3,4][4,3,2,1]
take
ghci>take 2 [3,1,5][3,1]ghci>take 1 [3,1,5][3]ghci>take 0 [3,1,5][]
drop
ghci>drop 2 [3,1,5][5]ghci>drop 1 [3,1,5][1,5]ghci>drop 0 [3,1,5][3,1,5]
maximum
ghci>maximum [1,5,2,3]5
sum
ghci>sum [1,2,3]6ghci>sum [1..10]55
product
ghci>product [4,2,5]40
elem
ghci>3 `elem` [6,7,8]Falseghci>6 `elem` [6,7,8]Trueghci>7 `elem` [6,7,8]Trueghci>elem 3 [6,7,8]Falseghci>elem 6 [6,7,8]Trueghci>elem 7 [6,7,8]True
cycle
ghci>cycle [5,2,8][5,2,8,5,2,8,5,2,8,5,2,8,...] --无穷重复下去ghci>take 5 (cycle [5,2,8])[5,2,8,5,2]ghci>take 10 (cycle [5,2,8])[5,2,8,5,2,8,5,2,8,5]
repeat
ghci>repeat 33,3,3,...ghci>take 5 (repeat 3)[3,3,3,3,3]
replicate
ghci>replicate 2 10[10,10]ghci>replicate 3 10[10,10,10]

读书人网 >编程

热点推荐