emmap erlang_erLang学些笔记2—基本类型
7.Lists 集合
1.可以包含任何类型数据,最常用的数据结构之一
1> Li = [1,3,{tt,22},5.3,kj].
[1,3,{tt,22},5.3,kj]
2.在List中erlang会将连续可组成字符创的集合输出为字符创,除非一个字符不能转化为字母
2> [97,98,99].
"abc" -- 因为十进制的97 对应到 assic 表中就是 英文字母a,
3> [97,98,99,3]. -- 除非list中包含一个无法转化的数字(例如3对应assic中是ETX正文结束),那么就原样显示list
[97,98,99,3]
4> [244].
"?"
3.list的修改
3.1 若是 进行 — 操作,那么会去除相同的数据,若是进行 ++ ,对于重复的数据还是会进行添加。具体如下所示
10> [1,2,3,4,5] -- [1,3].
[2,4,5]
11> [1,2,3] ++ [4,5].
[1,2,3,4,5]
12> [1,2,3] ++ [2].
[1,2,3,2]
1> [1,1,2,3] -- [1]. -- 匹配到第一个就进行操作!
[1,2,3]
3.2 运算符都是自右到左进行运算,也就是说会进行最右边的运算符进行计算。具体如下所示
13> [1,2,3]--[2,3]--[1]. -- 先进行了 [2,3] -- [1] 的运算,得到还是 [2,3].再进行了 [1,2,3] -- [2,3]
[1]
14> [1,2,3]--[2,3]--[2]. -- 先进行了 [2,3] -- [2] 的运算,得到[3].再进行了 [1,2,3] -- [3]
[1,2]
3.3一些常用函数 ,head 缩写 hd:取list的第一个元素。 tail 缩写 tl:取head之外的所有数据 。length。计算list的长度
15> Point = [1,2,3].
[1,2,3]
16> hd(Point).
1
17> tl(Point).
[2,3]
18> length(Point).
3
3.4 list之间的组合
list之间的组合只需要一个 | 符号即可!head总是取第一个数据,tail取剩余的数据
24> List = [1,2,3,4].
[1,2,3,4]
25> NewList = [k|List].
[k,1,2,3,4]
26> [Head|Tail] = List.
[1,2,3,4]
27> Head.
1
28> Tail.
[2,3,4]
3.5 | 分割后的数据一定要求是一个list集合。
7> [3|[]].
[3]
8> [3|[1|[3]]].
[3,1,3]
9> [3|[1|[3|[]]]].
[3,1,3]
11> [1|3|[1|[3|[]]]].
* 1: syntax error before: '|' //同一级别中 只能存在一个 | 。不允许存在两个|
具体合理的组装方式是 [Term1| [Term2 | [… | [TermN]]]]. 以下都是等价的
12> [a,b,c,d].
[a,b,c,d]
13> [a|[b,c,d]].
[a,b,c,d]
14> [a,b|[c,d]].
[a,b,c,d]
15> [a,b|[c|[d]]].
[a,b,c,d]
16> [a,b|[c|[d|[]]]].
[a,b,c,d]
8.list 的扩展应用
8.1 NewList = [Expression || Pattern
4> List = [2*N || N
[2,4,6,8]
5> [X || X
[2,4,6,8,10]
6> RestaurantMenu = [{steak,5.99},{bear,3.99},{poutine,6.99},{kitten,20.99}].
[{steak,5.99},{bear,3.99},{poutine,6.99},{kitten,20.99}]
8> [{Item,Price*10.7}||{Item,Price} = 6 , Price =<10].
[{poutine,74.79299999999999}]
注意点:
1) ||代表运算分割符。
2)
8.2也可以进行运算、匹配,写的很随意,自由
9> [X+Y|| X
[4,5,5,6]
想当于做了两个for 循环。
10> Weather = [{hangzhou,snow},{shanghai,rain},{beijing,wet},{wenzhou,fog},{shenzheng,hot},{taizhou,fog}].
[{hangzhou,snow},
{shanghai,rain},
{beijing,wet},
{wenzhou,fog},
{shenzheng,hot},
{taizhou,fog}]
11> FoggCity = [X||{X,fog}
[wenzhou,taizhou]
emmap erlang_erLang学些笔记2—基本类型相关推荐
- 4、Python运算符、比较运算符、赋值运算符、位运算符、逻辑运算符、成员运算符、身份运算符、运算符优先级(学些笔记)
4.1Python算术运算符 以下假设变量:a = 10,b=20 示例: # -*- coding: UTF-8 -*-a = 25 b = 3 c = 0c = a + b print(" ...
- 零基础如何学习游戏3D建模,要学些什么内容?学多久?
一.什么是游戏3D建模在大型的游戏研发公司,3D建模是一个非常大的职能,分为4个岗位:3D角色低模手绘,3D场景低模手绘,次世代角色高模,次世代场景高模.通常我们所说的3D建模是指低模手绘. 二.零基 ...
- Web前端好不好学?Web前端要学些什么呢?
你也许会觉得Web前端开发是一个很简单的工作,对呀,你就是刚刚从网页设计转型过来的.但当你深入其中时,一定会发现好像Web前端开发不是那么简单,光网站性能优化.响应式.框架就让你焦头烂额.确实,做We ...
- [新手必备]Python 基础入门必学知识点笔记
Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...
- 零基础自学平面设计需要学些什么?
作为一个新手从零基础开始学习平面设计,首先明白的是平面设计是什么,当你能够自己解释平面设计,让你身边的人明白的时候,基本你就是开始入门了. 同时你还要明白的,学习平面设计需要掌握哪些基本知识,和行业性 ...
- Python自学难吗?Python课程主要学些什么内容?
自学一门技能,本身就有难度,更何况还是编程类型的Python,要是有兴趣还好说,兴趣是原始动力.但是光有兴趣还远远不够,要足够坚持才能学有所成.那么Python自学难吗?本文将为大家来解答! 前期可以 ...
- 云计算主要学些什么技术内容?零基础能学会吗?
云计算主要学些什么技术内容?零基础能学会吗? 随着信息技术的不断发展,云计算作为一种新兴的技术,在当今社会中起到了越来越重要的作用,尤其是在数字化发展领域,不管是传统企业还是新经济领域,人工智能.大数 ...
- 「01」机器学习,到底在学些什么?
这是参加原力计划单独投稿的,是我专栏文章的part 2 2. 机器学习,到底在学些什么? 2.1 什么是学习? 根据定义,学习是从有限的例子中,找出问题和答案之间规律的一个过程,而所找出 ...
- C语言学到什么程度可以找到工作呢?学完C语言之后要学些什么呢?
经常有人私信问我:C语言学到什么程度可以找到工作呢?学完C语言之后要学些什么呢? 今天我就带大家了解一下 想要找一个开发桌面应用程序(QQ,酷狗.360.浏览器.暴风影音.微信.百度网盘等等),开发大 ...
最新文章
- Nginx+uWSGI+Django原理
- Linux下ipconfig分析及C语言实现
- Markdown简单语法总结
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- linux系统如何打开python_手把手教你在Linux系统下使用Python虚拟环境
- Integer的缓存机制
- resin端口错误问题
- Mac SavePanel 保存文件的GUI代码
- mongodb查询的语法(大于,小于,大于或等于,小于或等于等等)
- Android的当前应用启动第三方应用(跨软件启动页面)
- 【excel】常用的函数整理
- 无线网路中的虚拟AP技术
- 解决Chrome谷歌浏览器Flash插件已被屏蔽
- word中设置页码从任意页开始
- windows7创建wlan热点分享网络
- C语言基础知识梳理总结
- linux基础入门---用户和组管理命令
- Lightly 在线编译
- 网联清算平台45家股东名单出炉【附股权明细表】
- Android使用文件管理器打开指定文件夹,浏览里面的内容