您的位置:首页 > 其它

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 是假
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: