环境准备

在命令行输入,进入交互式环境

> stack ghci

配置开发环境请参考安装教程

生成列表

生成列表的方法有以下几种:

  1. 和其他语言一样,将数值或变量包装进列表
  2. 利用[a_0 .. a_n] 方法生成序列
  3. 利用[a_0,a_1 .. a_n]方法生成等差数列
  4. 利用a_0:a_1:a_2:[] 的方法生成数组
  5. 利用a_0:a_1:a_2:[b_1,b_2,b_3]的方法,将新数值加入到已有数组中。
ghci>  --Haskell语言的注释写在两个减号后面ghci> [1,2,3] --手动生成数组
[1,2,3]ghci> [1..9]  --生成一个整数序列
[1,2,3,4,5,6,7,8,9]ghci> [1,4..10] --生成固定间隔的整数序列
[1,4,7,10]ghci>[1,2.5..20]--生成固定间隔的浮点数序列
[1.0,2.5,4.0,5.5,7.0,8.5,10.0,11.5,13.0,14.5,16.0,17.5,19.0,20.5]ghci> 1:2:3:[] --冒号包装
[1,2,3]ghci> a=[1,2..10] --对变量赋值
ghci> a
[1,2,3,4,5,6,7,8,9,10]

字符串

单引号表示字符,而双引号表示字符串,字符串具有和数组类似的性质。

GHCi> ['h','e','l','l','o']
"hello"GHCi> 'h':'e':'l':'l':'o':[]
"hello"GHCi> 'h':"ello"
"hello"GHCi> "h":"ello" --把字符串当作字符处理会报错
error

列表拼接

列表连接

使用++ 符号可以将两个列表展开并连接,而使用a:b:[c] 方法则

ghci> a
[1,2,3,4]
ghci> b
[0.0,0.5,1.0,1.5,2.0,2.5,3.0]
ghci> a:bghci> a++b
[1.0,2.0,3.0,4.0,0.0,0.5,1.0,1.5,2.0,2.5,3.0]ghci> a:b:[]
[[1.0,2.0,3.0,4.0],[0.0,0.5,1.0,1.5,2.0,2.5,3.0]]ghci> [1,2,3]:[4,5,6]:[]
[[1,2,3],[4,5,6]]ghci> "Hello"++" World"++"!"
"Hello World!"ghci> 1:2:3:[]
[1,2,3]

数组索引和切片

索引方法

  • !!操作符
  • (!!)函数
GHCi> [1,2,3] !! 0
1GHCi> "puppies" !! 4
'i'GHCi> (!!) [1,2,3] 0 -- 取第几位的元素

头尾函数

在head即取列表的头,tail即列表去头之后剩余的部分。

ghci> head [1,2,3,4]
1
ghci> tail [1,2,3,4]
[2,3,4]

切片函数

  • take 函数
  • takeLast 函数
  • subseq 函数
  • dorp函数
GHCi> take 5 [2,4..100] --取前几个元素
[2,4,6,8,10]
GHCi> take 3 "wonderful"
"won"
GHCi> take 1000000 [1]
[1]GHCi> takeLast 10 [1..100] --取后几个元素
[91,92,93,94,95,96,97,98,99,100]GHCi> subseq 2 5 [1 .. 10] --切片
[3,4,5]
GHCi> subseq 2 7 "a puppy"
"puppy"GHCi> drop 2 [1,2,3,4,5]
[3,4,5]
GHCi> drop 5 "very awesome"
"awesome"

列表操作

  • length :求长度
  • reverse:翻转
  • elem:判断元素是否属于列表
  • zip:结合两个列表中的元素
GHCi> zip [1,2,3] [2,4,6]
[(1,2),(2,4),(3,6)]
GHCi> zip "dog" "rabbit"
[('d','r'),('o','a'),('g','b')]
GHCi> zip ['a' .. 'f'] [1 .. ]
[('a',1),('b',2),('c',3),('d',4),('e',5),('f',6)]

Haskell列表操作相关推荐

  1. python列表操作:追加元素到列表的代码

    将做工程过程中常用的内容做个收藏,如下的内容是关于python列表操作:追加元素到列表的内容. scores = ["1","2","3"] ...

  2. 轻量函数式 JavaScript:八、列表操作

    你在前一章闭包/对象的兔子洞中玩儿的开心吗?欢迎回来! 如果你能做很赞的事情,那就反复做. 我们在本书先前的部分已经看到了对一些工具的简要引用,现在我们要非常仔细地看看它们,它们是 map(..).f ...

  3. python编程实例详解-Python编程之列表操作实例详解【创建、使用、更新、删除】...

    这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋友可以参考下 #coding=utf8 ''''' 列表类型也 ...

  4. Erlang列表操作里面的变量绑定规则

    2019独角兽企业重金招聘Python工程师标准>>> 原文如下: The scope rules for variables which occur in list compreh ...

  5. Python学习(四)列表与列表操作

    读取列表 列表:由一系列按特定顺序排列的元素组合.Python中使用"[]"表示列表 bicycles = ['trek','cannondale','redline','spec ...

  6. python列表操作函数大全_Python列表操作函数

    列表可以进行多个数据的存储,同时python中的列表设计非常到位,它可以实现内容动态扩充,可以进行后期数据的删除,这些就需要通过Python提供的列表操作函数来实现了. 对于Python语言而言,开发 ...

  7. 【Python基础】零基础学习Python列表操作

    作者:来自读者投稿 整理:Lemon 出品:Python数据之道 " 「Python数据之道」导读:本文来自读者投稿,Python数据之道早些时候也发过 Python 列表相关的文章,可以前 ...

  8. 获取用户列表为空_Python中最常见的10个列表操作

    列表是Python中使用最多的一种数据结果,如何高效操作列表是提高代码运行效率的关键,这篇文章列出了10个常用的列表操作,希望对你有帮助. 1.迭代列表时如何访问列表下标索引 普通版: 优雅版: en ...

  9. 开发基础(字符编码、列表操作)

    一.字符编码 计算器所认识的编码都是二进制编码 二进制与十进制转换 计算机最开始使用的编码是美国的 ASCll编码 计算机容量单位 字符编码 python2.x 默认编码使用的是ASCll pytho ...

最新文章

  1. java设计模式观察者模式_Java设计模式(9)——观察者模式
  2. python3.1.1_python 3.1.1 with--enable shared:将不会构建任何扩展
  3. leetcode解题记录(二)
  4. Oracle(一):简介、安装、DDL、DML、JDBC、导入导出
  5. 关于Unity中的帧动画组件的编写
  6. python获取微信用户基本信息_微信开放平台扫码登录获取用户基本信息!附可用demo...
  7. oracle常见等待事件,必看干货 | Oracle 常见的等待事件说明(下)
  8. 使用JavaScript重定向URL参数
  9. @程序员,如何快速配置 Spring?
  10. 提高存储器速度的技术
  11. 64. 雇员管理系统
  12. 我需要一个媒体服务器来进行一对多的WebRTC广播吗?
  13. oracle bpm 教学视频,Oracle BPM 官方文件摘录
  14. 【小白】用python写一个单向聊天室
  15. Linux文件与目录常用操作
  16. GPS vs DGPS (差分GPS)
  17. 今日更新京东皮卡丘1.7修复链接和预约抢购下单商品,手机端茅台抢购软同步上架(可配备群控使用)
  18. 删除文件夹时,报错“错误ox80070091:目录不是空的”,该如何解决?
  19. HDU - 1859 最小长方形
  20. 野指针,数组指针,指针数组

热门文章

  1. 什么情况下用深拷贝?
  2. 浅谈计算机辅助数学教学论文,论文浅谈对计算机辅助数学教学的认识精选.doc...
  3. 华为hcip认证每科有多少题目?hcip需要全部通过吗?
  4. 贪吃蛇大作战的开发(二)
  5. 计算机主机信号不过去的解决办法,电脑显示器无信号黑屏是什么原因|怎么解决【图解】-太平洋IT百科...
  6. 终极方法, 解决Duplicate class 开头的报错内容全过程详解 - Duplicate class com.github.promeg.tinypinyin
  7. 2、Docker 本地导入镜像,启动镜像,保存镜像,载入镜像,删除镜像
  8. git如何合并中间几个commit点为一个commit点
  9. easyExcel 用XSSF画斜线
  10. qstring 字符串查找_Qt QString常用方法