简单谈谈Erlang的几种运算符

Erlang 有好几种运算符,比较运算符、数学运算符、布尔运算符,文章针对这几种运算符做讨论,参考erlang文档,以例子说明。

Erlang的比较运算符

写法如下:

Expr1 op Expr2
1> 1 == 1.
true
op Description
== 等于
/= 不等于
=< 小于或等于
< 小于
>= 大于或等于
> 大于
=:= 恒等于
=/= 恒不等于

以=:=和==为例,说明恒等于和等于的区别:

2> 1 == 1.0.
true
3> 1 =:= 1.0.
false

不同类型比较会有什么结果?

针对不同数据类型比较,如下:

number < atom < reference < fun < port < pid < tuple < list < bit string

就是说,[] > 0结果是true

Erlang的数学运算符

有两种写法,如下:

op Expr
Expr1 op Expr2
4> + 1.
1
5> 1 + 1.
2
op Description Argument type
+ 一元 + number
- 一元 - number
+ 加法 number
-
减法
number
*
乘法
number
/ 浮点除法 number
div
整数除法

integer
bnot 一元 not 位运算 integer
rem 整数求余 integer
band 与运算 integer
bor 或运算 integer
bxor 异或运算 integer
bsl 左移运算 integer
bsr 右移运算 integer

例子如下:

6> +1.
1
7> -1.
-1
8> 1+1.
2
9> 4/2.
2.0
10> 5 div 2.
2
11> 5 rem 2.
1
12> 2#10 band 2#01.
0
13> 2#10 bor 2#01.
3
14> 8 bsr 1.
4
15> 8 bsl 1.
16

Erlang的布尔运算符

写法如下:

op Expr
Expr1 op Expr2
op Description
not 一元逻辑非
and 逻辑与
or 逻辑或
xor 逻辑异或

例子:

16> not true.
false
17> true and false.
false
18> true xor false.
true

另外,还有两个布尔运算符 orelse 和 andalso,这两个用于短路运算,写法如下:

Expr1 orelse Expr2
Expr1 andalso Expr2

什么是短路运算?

例子:

Expr1 and Expr2

Expr1 andalso Expr2

对于and运算,如果Expr1为假,还会继续执行Expr2,然后再判定表达式为假;而andalso运算,当Expr1为假就判定表达式为假,不再执行Expr2,所以这里andalso效率比较高。

参考:

http://blog.csdn.net/mycwq/article/details/37813635

http://www.erlang.org/doc/reference_manual/expressions.html

简单谈谈Erlang的几种运算符

时间: 2024-10-12 10:11:03

简单谈谈Erlang的几种运算符的相关文章

简单谈谈JVM中的GC(下)

在系列的最后,简单谈谈一些会有坑的JVM参数配置,以避免大家再多次踩坑 -XX:+DisableExplicitGC 很多的JVM标准配置中都有该选项,那么它究竟是干嘛的? 它会让System.gc()变成一次空调用,并不会真的发生一次Full Gc.除此以外,它还能避免第三方库定时引发的Full Gc(没错,说的就是RMI机制),看来很美好,对不对? 但有一种情况:应用本身GC正常,很久都不会Full Gc,但堆外内存增长很快,并且JVM启用了-XX:+DisableExplicitGC.你就

简单谈谈编程语言(三)

?????? 本文续上一篇简单谈谈编程语言(二),最后再谈谈编程语言.这篇很有可能是最后一篇了,也是时候整理一下我之前的一些文档了,这篇谈谈对编程语言专精的必要性,或者选择一精多涉猎的战术,谈谈一些学习心路,而,共性,就是我这篇文章表达的核心.第一篇文章谈历史,第二篇文章谈历程,都是第三篇的基础,之后就靠大家自己去实际学习中感受文章中所表达的了. ?????? 经过前两篇对编程语言不同层面的描述,其实大概对编程语言学习的畏惧心理可能已经没有那么大了,也可能也因为编程经验相对少感受不深,也可能因为

Python的6种运算符(日记)

学习了许久的Python,我单独总结出了Python中比较常见的6种运算符,感觉略有不全,希望大伙可以一起讨论与研究Python! 一.算术运算符 加 减 - 乘 * 除 / 取余 % 取整 // 异号 - 不变号 + 取绝对值 abs(x) 转为整数 int(x) 转为浮点数 float(x) 复数 complex(re,im) 共轭复数 c.conjugate() 返回一个数值对(x//y,x%y) divmod(x,y) x的y次幂(两种写法) x**y,pow(x,y) 二.比较运算符

调用MyFocus库,简单实现二十几种轮播效果

一.首先点击这里下载myFocus库文件,标准文件库就行了,很小仅仅1.4M. myFocus库有以下的好处: a . 文件小巧却高效强大,能够实现二十几种轮播的效果. b . 极其简单的使用,只需要调用就可以使用,下面会介绍方法. c . 灵活的设置,很多参数可以提供设置,比如不想要文字提示,设置高度为0....更多参数适用请见网站教程页面. 二.下载下来之后,解压,看到一个文件夹,如下图所示: 对此文件夹进行一下说明:a . 打开js文件夹,然后有个js文件,就是我们最开始要调用的myfoc

简单谈谈为什么国内不能登录Facebook/youtube等国外网站以及解决方法

简单谈谈为什么国内不能登录Facebook/youtube等国外网站以及解决方法让我们来简单地回顾一下近几年的互联网,自从Google对微软步步紧逼之后,国外互联网风起云涌,先后出现了Twitter.Facebook.Youtube等超级巨无霸,这些巨大无朋的互联网公司几乎是一夜之间出现在我们眼前.基本上这几家公司都是在2004年左右创办的, 2004年2月,Facebook由哈佛大学的学生Mark Zuckerberg创办,时隔一年,Youtube于2005年2年由Paypal的三个前员工Ch

简单谈谈Resource,Drawable和Bitmap之间的转换

一直接触这些东西,还是归个类整理一下比较好. Resource -> Drawable Drawable draw1 = this.getResources().getDrawable(R.drawable.icon); Drawable -> Bitmap 1. static Bitmap drawableToBitmap(Drawable drawable) // drawable 转换成bitmap { int width = drawable.getIntrinsicWidth();/

brew - 可以简单的获取数千种开源工具和函数库的包管理器

一.简介 brew是一个使用ruby语言.由非营利组织开发的包管理工具. Homebrew程序提供的brew,严格来讲不是一个OS X的原生命令,但任何一个OS X的专业用户都不会错过它. "OS X缺少的包管理器"这个评价是恰如其分的. 如果你曾经在Linux上使用过apt-get,你就会发现Homebrew基本上是一样的. 使用brew可以简单的获取数千种开源工具和函数库. 例如: brew install imagemagick就可以安装ImageMagick, brew ins

在python中有多少种运算符?解释一下算术运算符

在python中,我们有7种运算符:算术运算符.关系运算符.赋值运算符.逻辑运算符.位运算符.成员运算符.身份运算符 我们有7个算术运算符,能让我们对数值进行算术计算 1.加号(+),将两个值相加 2.减号(-),将第一个值减去第二个值 3.乘号(*),将两个值相乘 4.除号(/),用第二个值除以第一个值 print(7+8)#15 print(7-8)#-1 print(7*8)#56 print(7/8)#0.875 5.向下取整除.取模和取幂运算 原文地址:https://www.cnbl

大钟的ios开发之旅(4)————简单谈谈ios程序界面实现的三种方式(代码创建,xib和storyboard)

/******************************************************************************************** * author:[email protected]大钟 * E-mail:[email protected] *site:http://www.idealpwr.com/ *深圳市动力思维科技发展有限公司 * http://blog.csdn.net/conowen * 注:本文为原创,仅作为学习交流使用,转