LYSE = Learn Yourself Some Erlang
Erlang是函数式编程语言
与C++一个很大的差别,是变量的值不能改变
如果我们写 x = 1 x = 2 因此有1 =2,无意义
当一个函数的参数不变时,总是返回相同的值,这是Erlang的引用透明性。
基于这个原则,可以把许多函数组合起来解决复杂的问题,而不用担心引发错误。
当引用透明性原则和现实冲突时,遵循现实的原则。
Erlang在并发和可用性方面非常出色。
Erlang采用actor模式,每个actor是一个独立的进程。
Erlang不只是语言,还是一个环境。Erlang代码被编译为字节码在虚拟机中运行。
一个Erlang的标准包提供开发工具(编译器、debugger、分析器、测试框架)、OTP框架、web服务器、解析生成器、mnesia数据库(键值数据库,可以将自己复制到多台服务器,提供嵌套事务,可以存储任何数据)。
VM和库允许在运行的系统中更新代码而不需要中断程序。
Erlang的进程是轻量型的,因此有大规模下的扩展能力。你同时可以创建几十万的进程,但不要刻意这么做。进程间通信还是有点消耗资源的。
Erlang有擅长的领域(服务器)也有不擅长的领域(图像、信号处理)。