Erlang运算符

1)算术运算符

  +:加  -:减  *:乘  /:除(结果为float类型)  div:整除  rem:整除取余 

  注意最后的结果都是二进制

  band是按位与运算  2#10 band 2#110.  》》  2

  bor是按位或运算  3#10 bor 2#100.  》》  7  3#10先转为2#11

  bxor是按位异或  2#10 bxor 2#11.  》》  1

  bsl按位左移  2#10 bsl 2  》》  8  2#1000

  bsr按位右移  2#10 bsr 2  》》  0 

2)比较运算符

  1.比较运算符的大小级别::number < atom < reference < fun < port < pid < tuple < list < bit string

  2.==等于  /=不等于  =<小于等于  <小于  >=大于等于  >大于  =:=精确的等于  =/=精确的不等于

  等于和精确等于的区别:如果要比较两个数,如果两个数之间是不同的类型,比如float和int那么,==操作会首先把两个数字转换成相同的相同类型。举例:
  1> 1==1.0.
  true
  2> 1=:=1.0.
  false

  

  3.列表是按照字典顺序排列,就像是字典里面的词一样.第一个元素先比较,然后第二个元素再次比较.

  [a,b]<[d,e]   True

  [a,b]<[a,a]   Flase

  

  4.元素的比较是先比较元素的数目,然后在一个个比较各个元素

  {a,b}<{a,b,c} True

  {a,b}<{a,c}    True

3)逻辑运算符

  not:取反  and:全真为真,一假为假  or:一真为真,全假为假  xor:异或

  andalso与and以及orelse与or的区别:

  原始的or和and是不带”短路运算”操作的,而orelse和andalso是带短路运算操作的

  短路运算举例

  Express1 and Express2

  Express1 andalso Express2

  如果Express1 为假,and会继续判断Express2,然后整体判定为假,而andalso”短路”操作,直接判定整个表达式为假,从效率上来说,andalso会高一些 

4)数组运算

  最后还有个数组运算,++或者–,很简单

  1> [1,2] ++ [3,4].

  [1,2,3,4]

  2> [1,2] -- [3,4].

  [1,2]

  3> [1,2] -- [1,4].

  [2]

  4> [1,2] ++ [1,4].

  [1,2,1,4]

  5> [1,2] -- [1,2].

  []

时间: 2024-10-14 12:59:31

Erlang运算符的相关文章

Erlang--运算符

(一)Erlang运算符: 1.算术运算符:  +, -, *, /, div,  rem, 1."/", 用于除,但是其结果永远是浮点数, 即不管是否整除 2.div, 除, 取结果的整数部分 3.rem,  取模 2.比较运算符: >, <, >=, =<,  ==,  =:=,  /= ,  =/= 1.=<, 小于等于 2.==, 比较两个值是否相等, eg:  1  == 1.0.   结果为:  true 3.=:=,   比较两个值是否相等,

简单谈谈Erlang的几种运算符

Erlang 有好几种运算符,比较运算符.数学运算符.布尔运算符,文章针对这几种运算符做讨论,参考erlang文档,以例子说明. Erlang的比较运算符 写法如下: Expr1 op Expr2 1> 1 == 1. true op Description == 等于 /= 不等于 =< 小于或等于 < 小于 >= 大于或等于 > 大于 =:= 恒等于 =/= 恒不等于 以=:=和==为例,说明恒等于和等于的区别: 2> 1 == 1.0. true 3> 1

当我们谈论Erlang Maps时,我们谈论什么 Part 2

声明:本文讨论的Erlang Maps是基于17.0-rc2,时间2014-3-4.兴许Maps可能会出现语法或函数API上的有所调整,特此说明. 前情提要: [Erlang 0116] 当我们谈论Erlang Maps时,我们谈论什么 Part 1 继续昨天的话题,在Erlang Factory SF Bay Area 2013有一个议题:"Where are we on the Map?" [PDF ],这个Talk基本上就是选取了EEP43的要点,有兴趣的同学能够FQ观看视频 W

Erlang 转至维基百科

Erlang(英语发音:/??rlæ?/)是一种通用的并行程序设计语言,它由乔·阿姆斯特朗(Joe Armstrong)在瑞典电信设备制造商爱立信所辖的计算机科学研究室开发,目的是创造一种可以应付大规模开发活动的程序设计语言和运行环境.Erlang于1987年发布正式版本,最早是爱立信拥有的私有软件,经过十年的发展,于1998年发表开放源代码版本. Erlang是运作于虚拟机的解释型语言,但是现在也包含有乌普萨拉大学高性能Erlang计划(HiPE)[2]开发的原生代码编译器,自R11B-4版本

Erlang基础 - 数据类型

Erlang数据类型很少,很容易掌握: 一.数值类型(整数和浮点数)       1.整数 整数大小事没有限制的,较小的整数会被存放在单个机器字长内,较大的整数会自动按需分配内存.所以根本就不存在溢出的问题. 示例: 101 -101 1234567890 * 987654321 * 999999999 另外,还可以使用2进制到36进制的整数,如:16#FF00,2#10101,36#ZZ. 还有,利用$前缀记法可以得到任意字符的数值编码(ascii/Latin-1/Unicode皆可) 如:$

Erlang学习笔记2

http://wgcode.iteye.com/blog/1007623 第二章 入门 1.所有的变量都必须以大写字母开头,如果要查看某个变量,只要输入变量的名字即可,如果一个变量被赋予值,就称为绑定变量,否则被称为自由变量,一开始所有变量都是自由的. 有一点像Java中的常量,这就是为什么用大写字母的原因. 2.  “=” 近似于一个赋值操作符,是一个模式匹配运算符,当X是自由变量未被赋值时“=”是赋值运算符,否则是模式匹配运算符. 3. “/”除号永远返回浮点数. 4. 原子用来表示不同的非

[python01] python列表,元组对比Erlang的区别总结

数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字,字符,甚至可以是其他的数据结构. python最基本的数据结构是sequence(序列):6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象和xrange对象. 对比归纳:列表,元组在Erlang与python中的区别: 1. 通用操作: Python的列表更像是C中的数组,但是比那更灵活,和Erlang的列表大有不同. 1.1 python列表索引从0开始并可以是负数.可以使用 >>>nu

erlang note

没有关于erlang interface ,继续寻找吧... ----------------------------------------------------------------- http://wgcode.iteye.com/blog/1018614 第二章 入门 1.所有的变量都必须以大写字母开头,如果要查看某个变量,只要输入变量的名字即可,如果一个变量被赋予值,就称为绑定变量,否则被称为自由变量,一开始所有变量都是自由的. 有一点像Java中的常量,这就是为什么用大写字母的原

erlang 符号相关基本语法

http://blog.csdn.net/anghlq/article/details/6803332 ErLang语法约定: 大写字母开头的名字(比如Address),表示一个变量,包括参数.局部变量等: 小写字母开头的单词(比如ok),表示一个常量,叫做atom(原子的意思),包括常量名.函数名.模块名等. ErLang的注释用%开头.ErLang用下划线“_”表示任意变量,类似于Java的switch语法里面的default选项. 参数中没使用到的变量用下杠和首字母大写,如_Sample