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 <- List, Condition1, Condition2, ... ConditionN]. 表达式
4> List = [2*N || N <- [1,2,3,4]].
[2,4,6,8]
5> [X || X <- [1,2,3,4,5,6,7,8,9,10],X rem 2 =:= 0].
[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} <- RestaurantMenu,Price >= 6 , Price =<10].
[{poutine,74.79299999999999}]
注意点:
1) ||代表运算分割符。
2) <- 代表将list 赋值给变量并进行循环处理
8.2也可以进行运算、匹配,写的很随意,自由
9> [X+Y|| X<-[1,2],Y<-[3,4]]. //运算
[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} <- Weather]. //匹配
[wenzhou,taizhou]
分享到:
相关推荐
- 使用yum安装Erlang:`sudo yum install erlang-23.3.4.3-1.el7.x86_64.rpm` 2. **安装RabbitMQ**: - 下载RabbitMQ RPM包:`wget https://your_download_link/rabbitmq-server-3.8.17-1.el7.noarch.rpm` - ...
erlang-sd_notify-1.0-2.el7.x86_64.rpm
erlang-xmerl-23.0.2-2.el7.x86_64.rpm,rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。
erlang-20.3.8.17-1.el7.centos.x86_64
erlang-xmerl-22.3-1.el7.x86_64.rpm,rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。
erlang-21.3.8.11-1.el6.x86_64.rpm
erlang-19.3.6.4-1.el
https://blog.51cto.com/7794482/2436678 可根据文档进行部署,redis+mysql+mq的插件 rabbitmq 安装时需要该插件
erlang-21.3.8.15-1.el7.x86_64.rpm
erlang-23.2.7-1.el7.x86_64 .rpm
erlang-21.3.7.1-1.el7.x86_64.rpm rabbitmq基础语言环境。
esl-erlang_24.2.1-1_centos_7_amd64.rpm
对应rabbitmq 3.12.4,亲测可用
erlang-20.3.6-1.el7.centos.x86_64.rpm erlang-20.3.6-1.el7.centos.x86_64.rpm erlang-20.3.6-1.el7.centos.x86_64.rpm erlang-20.3.6-1.el7.centos.x86_64.rpm erlang-20.3.6-1.el7.centos.x86_64.rpm
linux基于centos7.x,erlang21.3.8.16资源适配rabbitmq3.8.5。欢迎大家下载!!!!
配套rabbitmq-server-3.8.17-1.el8.noarch.rpm
erlang-23.2.6-1.el7.x86_64
rabbitmq安装前需要安装erlang包,如果没有erlang包,rabbitmp则无法下载成功
由于不同版本的rabbitmq需要的erlang版本不一样,但是官网已经无法下载,此版本的erlang适用于rabbitmq3.7.4-3.7.8,其余版本自查是否可用
标题中的"erlang-23.2.3-1.el7.x86_64.rpm"和"erlang-23.2.1-1.el7.x86_64.rpm.rar"代表了两个不同的Erlang版本。`.rpm`文件是用于Red Hat Enterprise Linux (RHEL) 和其衍生发行版如CentOS的软件包管理格式,而`....