Haskell列表操作
环境准备
在命令行输入,进入交互式环境
> stack ghci
配置开发环境请参考安装教程
生成列表
生成列表的方法有以下几种:
- 和其他语言一样,将数值或变量包装进列表
- 利用
[a_0 .. a_n]
方法生成序列 - 利用
[a_0,a_1 .. a_n]
方法生成等差数列 - 利用
a_0:a_1:a_2:[]
的方法生成数组 - 利用
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列表操作相关推荐
- python列表操作:追加元素到列表的代码
将做工程过程中常用的内容做个收藏,如下的内容是关于python列表操作:追加元素到列表的内容. scores = ["1","2","3"] ...
- 轻量函数式 JavaScript:八、列表操作
你在前一章闭包/对象的兔子洞中玩儿的开心吗?欢迎回来! 如果你能做很赞的事情,那就反复做. 我们在本书先前的部分已经看到了对一些工具的简要引用,现在我们要非常仔细地看看它们,它们是 map(..).f ...
- python编程实例详解-Python编程之列表操作实例详解【创建、使用、更新、删除】...
这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋友可以参考下 #coding=utf8 ''''' 列表类型也 ...
- Erlang列表操作里面的变量绑定规则
2019独角兽企业重金招聘Python工程师标准>>> 原文如下: The scope rules for variables which occur in list compreh ...
- Python学习(四)列表与列表操作
读取列表 列表:由一系列按特定顺序排列的元素组合.Python中使用"[]"表示列表 bicycles = ['trek','cannondale','redline','spec ...
- python列表操作函数大全_Python列表操作函数
列表可以进行多个数据的存储,同时python中的列表设计非常到位,它可以实现内容动态扩充,可以进行后期数据的删除,这些就需要通过Python提供的列表操作函数来实现了. 对于Python语言而言,开发 ...
- 【Python基础】零基础学习Python列表操作
作者:来自读者投稿 整理:Lemon 出品:Python数据之道 " 「Python数据之道」导读:本文来自读者投稿,Python数据之道早些时候也发过 Python 列表相关的文章,可以前 ...
- 获取用户列表为空_Python中最常见的10个列表操作
列表是Python中使用最多的一种数据结果,如何高效操作列表是提高代码运行效率的关键,这篇文章列出了10个常用的列表操作,希望对你有帮助. 1.迭代列表时如何访问列表下标索引 普通版: 优雅版: en ...
- 开发基础(字符编码、列表操作)
一.字符编码 计算器所认识的编码都是二进制编码 二进制与十进制转换 计算机最开始使用的编码是美国的 ASCll编码 计算机容量单位 字符编码 python2.x 默认编码使用的是ASCll pytho ...
最新文章
- java设计模式观察者模式_Java设计模式(9)——观察者模式
- python3.1.1_python 3.1.1 with--enable shared:将不会构建任何扩展
- leetcode解题记录(二)
- Oracle(一):简介、安装、DDL、DML、JDBC、导入导出
- 关于Unity中的帧动画组件的编写
- python获取微信用户基本信息_微信开放平台扫码登录获取用户基本信息!附可用demo...
- oracle常见等待事件,必看干货 | Oracle 常见的等待事件说明(下)
- 使用JavaScript重定向URL参数
- @程序员,如何快速配置 Spring?
- 提高存储器速度的技术
- 64. 雇员管理系统
- 我需要一个媒体服务器来进行一对多的WebRTC广播吗?
- oracle bpm 教学视频,Oracle BPM 官方文件摘录
- 【小白】用python写一个单向聊天室
- Linux文件与目录常用操作
- GPS vs DGPS (差分GPS)
- 今日更新京东皮卡丘1.7修复链接和预约抢购下单商品,手机端茅台抢购软同步上架(可配备群控使用)
- 删除文件夹时,报错“错误ox80070091:目录不是空的”,该如何解决?
- HDU - 1859 最小长方形
- 野指针,数组指针,指针数组
热门文章
- 什么情况下用深拷贝?
- 浅谈计算机辅助数学教学论文,论文浅谈对计算机辅助数学教学的认识精选.doc...
- 华为hcip认证每科有多少题目?hcip需要全部通过吗?
- 贪吃蛇大作战的开发(二)
- 计算机主机信号不过去的解决办法,电脑显示器无信号黑屏是什么原因|怎么解决【图解】-太平洋IT百科...
- 终极方法, 解决Duplicate class 开头的报错内容全过程详解 - Duplicate class com.github.promeg.tinypinyin
- 2、Docker 本地导入镜像,启动镜像,保存镜像,载入镜像,删除镜像
- git如何合并中间几个commit点为一个commit点
- easyExcel 用XSSF画斜线
- qstring 字符串查找_Qt QString常用方法