erlang 语言学习笔记
2011-08-10 09:05
246 查看
不知道这个语言以后的发展前景怎么样, 现在公司要用, 写个记录,供以后学习的人参考。
module(math1).
-export([factorial/1]).
作用:
第一个是声明该模块可以被模块外部访问,
导出函数的意思是说明, 该函数可以被外部直接调用 相当于类中的public, 而没有被声明为export的函数, 则等同于private只能被该模块内部访问
factorial/1:这句话的意思是该factorial函数只有一个参数
变量总是以大写字母开头的。
“_”下划线,代表特殊的匿名变量或无所谓变量, 可以充当占位符
Erlang 提供了多进程原语:
spawn用于启动一个并行计算(进程);
Send 向一个进程发送一条消息,而receive从一个进程中接收一条消息
Pid ! Msg语法用于消息发送, Pid是代表一个进程的身份的表达式或者常量,Msg是要发送的消息,如
Pid ! {a, 12}
意思是将消息{a, 12}发送至以pid为标识符的进程,在发送前,消息中的所有的参数都先被求值,因此:
Foo(12) ! Math2:aarea({square, 5}). 表示对foor(12)求值,必须返回一个有效的进程标识符, 并对Math2:aarea({square, 5})求值, 然后将计算结果作为一条消息发送给进程。
条件表达式:
Atom(X) x是一个原子式
Constant(X) x不是列表或元组
Float(X) X是一个浮点数
Integer(X) x是一个整数
List(X) x是一个列表或者元组(【】)
Number X是一个整数或浮点数
Pid(X) x是一个进程标识符
Port(X) x是一个端口
Reference(X) x是一个引用
Tuple(X) x是一个元组
Binary(X) X是一个二进制数据
除此之外还有其他的一些项目比较运算符,特别注意的是
X/=Y x不等于y 类型是coerce
X =:=Y X等于Y类型是exact
X =/=Y X不等于Y 类型是exact
其他的比较运算符都是coerce类型。
特别的:
如果比较运算符的两个参数都是数值类型,且运算符类型为coerce,那么如果一个是integer, 另一个是float,则integer的就转换为float再进行比较。
因此5.0 == 1+4,为真,而5.0 =:= 4+1 是假
module(math1).
-export([factorial/1]).
作用:
第一个是声明该模块可以被模块外部访问,
导出函数的意思是说明, 该函数可以被外部直接调用 相当于类中的public, 而没有被声明为export的函数, 则等同于private只能被该模块内部访问
factorial/1:这句话的意思是该factorial函数只有一个参数
变量总是以大写字母开头的。
“_”下划线,代表特殊的匿名变量或无所谓变量, 可以充当占位符
Erlang 提供了多进程原语:
spawn用于启动一个并行计算(进程);
Send 向一个进程发送一条消息,而receive从一个进程中接收一条消息
Pid ! Msg语法用于消息发送, Pid是代表一个进程的身份的表达式或者常量,Msg是要发送的消息,如
Pid ! {a, 12}
意思是将消息{a, 12}发送至以pid为标识符的进程,在发送前,消息中的所有的参数都先被求值,因此:
Foo(12) ! Math2:aarea({square, 5}). 表示对foor(12)求值,必须返回一个有效的进程标识符, 并对Math2:aarea({square, 5})求值, 然后将计算结果作为一条消息发送给进程。
条件表达式:
Atom(X) x是一个原子式
Constant(X) x不是列表或元组
Float(X) X是一个浮点数
Integer(X) x是一个整数
List(X) x是一个列表或者元组(【】)
Number X是一个整数或浮点数
Pid(X) x是一个进程标识符
Port(X) x是一个端口
Reference(X) x是一个引用
Tuple(X) x是一个元组
Binary(X) X是一个二进制数据
除此之外还有其他的一些项目比较运算符,特别注意的是
X/=Y x不等于y 类型是coerce
X =:=Y X等于Y类型是exact
X =/=Y X不等于Y 类型是exact
其他的比较运算符都是coerce类型。
特别的:
如果比较运算符的两个参数都是数值类型,且运算符类型为coerce,那么如果一个是integer, 另一个是float,则integer的就转换为float再进行比较。
因此5.0 == 1+4,为真,而5.0 =:= 4+1 是假
相关文章推荐
- Erlang 学习笔记 (2) -- 列表, 尾递归(循环语言的代替)
- erlang 语言学习笔记
- 分布式、并行计算语言Erlang 学习笔记(第二部分)
- 分布式、并行计算语言Erlang 学习笔记(第三部分)
- go语言学习笔记
- Go语言学习笔记----与C语言的比较学习
- Python学习笔记1 - 语言的基本要素
- go语言学习笔记
- XML(扩展标记语言)学习笔记
- 汇编语言学习笔记(五)
- quick-cocos2d-x从零开始游戏开发笔记(二):Lua语言基础学习
- Go语言学习笔记(四) [array、slice、map]
- Go语言学习笔记 --- method
- 黑马程序员----C 语言学习笔记之枚举类型和typedef关键字
- float,double,long double——语言学习笔记6
- Perl语言学习笔记 5 输入与输出
- Go语言基础语法学习笔记[3]
- R 语言学习笔记 —— bigmomery使用
- go语言学习笔记1 Go开发环境
- Golang学习笔记:语言规范二