变量:大写字母开头!如果原子也要大写字母开头,请用引号引起来.
变量只能一次赋值(有Hack手段),这是函数式编程语言的特性.对于并行程序设计来说这很必要,但由于无法保存中间值,可能会引起无必要的重复运算,所以函数式编程语言不是绝对的高效.
=(等号)在Erlang中 不是赋值操作,是模式匹配的操作,对于变量来说则是绑定的操作.
原子:可以理解原子就是值,可以用引号引起来,值不变.
Erlang的每一个表达式都必须有值.
元组:tuple,以一对花括号括起来一堆逗号分割的原子,比如:{manager,’张三’,alibaba}.
元组不同于记录,它的字段没有名字,要像协议一样根据约定来记住每个位置的含义.通常用第一个元素来表明该元组含义,比如:{person, {manager,’张三’,alibaba}}.
元组中元素value的提取可以通过模式匹配来完成,用模式匹配符号=(我这么称呼等号 是为了让我忘记其它语言中的赋值作用),
模式匹配:从等号右边计算,然后想办法让等号左边与右边相等.这是左边去匹配右边的过程,别弄错.
下划线是占位符,就是说这里肯定有个东西,但具体是什么我们并不care.
2> [_,{_,X,_}]=[abc,{aaa,bbb,ccc}].
[abc,{aaa,bbb,ccc}]
3> X.
bbb
列表:方括号括起来,里面元素无所谓类型.
列表中有很多操作要牢记,比如要知道第一个元素是列表头,剩下的元素是列表尾,这很重要!访问列表头的性能非常高效!
[H|T] = […….] 这种方式匹配之后,H得到列表头,也就是第一个元素,剩下的元素作为尾列表赋值给T,也就是说H变成了第一个元素,而T编程了后面所有元素组成的一个新列表,即便后面没有任何元素,空列表也是列表.
1> X = aaa.
aaa
2> [H|X] = [abc,aaa].
** exception error: no match of right hand side value [abc,aaa]
3> [H|[X]] = [abc,aaa].
[abc,aaa]
7> [H|Y] = [abc].
[abc]
8> Y.
[]
如何组合多个列表?
用[atom1,atom2,atom3|old_list],
10> [a,b,c,d|[x,y,z]].
[a,b,c,d,x,y,z]
字符串:字符串其实是整数列表,记住和原子的区别:原子可以是单引号引起来的一个值,而字符串是双引号引起来的.当这个列表中所有的元素都可打印时,列表才会输出字母,否则输出数字.
用美元符号$后面加一个字母,代表该字母的ASCII值,是数字,不等于自身形式的原子.
14> '*' = $*.
** exception error: no match of right hand side value 42
15> 42 = $*.
42
f().让Erlang的shell释放帮定过的所有变量.
分享到:
相关推荐
erlang-21.0.9-1.el7.centos.x86_64.rpm,rabbitmq-server-3.7.7-1.el7.noarch.rpm
erlang-xmerl-23.0.2-2.el7.x86_64.rpm,rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。
Pragmatic Programmer,Pragmatic Programming,Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers,LLC. Every precaution was taken in the preparation of this book....
<<High Performance Erlang>>,英文,PDF格式
从目录可以看出,本书首先介绍了Erlang的基础概念和安装指南,随后逐步深入到更高级的主题和技术细节。通过这种方式,读者可以从零开始学习Erlang,并逐步掌握其核心功能和编程技巧。 ### 7. 特别准备 文件中多次...
编程+Erlang.pdf可能会详细介绍Erlang的基础语法、数据类型、过程和模块等概念。 2. **并发编程**:Erlang的并发模型是其独特之处。它通过轻量级进程(Lightweight Processes, LWP)实现并发,进程间通信(Inter-...
《Programming Erlang》是Joseph Armstrong所著的一本详细介绍Erlang编程语言的书籍。这本书旨在帮助读者理解Erlang的设计哲学、语法特性以及如何利用它来构建高效、容错的并发系统。Erlang是一种静态类型、函数式...
《编程Erlang》是Joe Armstrong所著的一本经典书籍,深入浅出地介绍了Erlang这门函数式编程语言,以及它在并发和分布式系统中的应用。源码分析可以帮助我们更深入地理解Erlang的内在机制和设计哲学。 Erlang是一种...
erlang-sd_notify-1.0-2.el7.x86_64.rpm
- **官方资源**: 通过阅读《Programming Erlang》这本书来深入了解 Erlang 的语法和特性,虽然书中某些部分可能较为抽象或难以理解,但它是了解 Erlang 的重要途径。 - **实践项目**: 结合实际案例进行练习,比如...
(setq load-path (cons "<Erlang OTP 安装路径>/lib/tools-<版本号>/emacs" load-path)) (setq erlang-root-dir "<Erlang OTP 安装路径>") (setq exec-path (cons "<Erlang OTP 安装路径>/bin" exec-path)) (require...
1. **核心语言和框架基础:**第二版涵盖了Erlang的核心概念和技术细节,包括语法、数据类型、流程控制、函数式编程等基础知识。 2. **社区项目介绍:**书中还详细介绍了Erlang社区中重要的开源项目,如构建工具rebar...
**并发编程在Erlang中的应用(Concurrent Programming in ERLANG)** 本标题及描述明确指出了文档的主要内容是关于如何在Erlang语言中进行并发编程。Erlang是一种通用、并发、强类型、垃圾回收的编程语言,特别适用...
esl-erlang_24.2.1-1_centos_7_amd64.rpm
Erlang是一种高级编程语言,特别为并发、分布式计算和容错设计,广泛应用于网络通信、实时系统和大型分布式计算环境中。最新版的Erlang是23.3.4.3-1.el7.x86_64.rpm,这个版本针对CentOS 7进行了优化。Erlang以其轻...
error: /tmp/esl-erlang_26.0.2-1~alinux~3_x86_64.rpm : not an rpm package (or packape manifest): arning: /tmp/rabbitmg-erver 3.12.4-1 all.rpm: Header V4 RSA/SHA512 Signature, key ID 6026dfca: NOKEY ...
在《Programming Erlang》中,作者Joe Armstrong,作为Erlang的主要创造者之一,详尽地讲解了Erlang的基本概念和语法特性。首先,书中会介绍Erlang的简单数据类型,如原子(atom)、整数、浮点数、字符串和列表,...
esl-erlang_16.b.3-2~centos~6_amd64.rpm