第一天接触感受:
Erlang最初应该是爱立信公司开发通信系统使用的语言。
电话系统具有并发性高,高容错,动态升级的这些特点,Erlang语言作为应用于电话系统的编程语言,也同样包括了这些特点。
函数式编程看上去逼格比较高,具体的好处有多少,需要继续学习才能感受到。
除去语法上的特点比较简洁之外,Erlang还是一种静态单一赋值SSA的一种语言。也就是说在整个变量(暂且称之为变量吧)在其生存周期里面,只能有一次赋值,类似于c语言里面的常量了。这种特点比较好的地方就是:如果并行起来的话,在内存里面没有共享的空间,不能更改已经存在值的内容。通信全靠消息之类的机制。传统的语言基本上都是靠锁之类的东西进行同步,而erlang现在看来,是不需要同步这种东西的,SSA嘛。
和接触过的语言使用表达式的方式不同,erlang用句号结尾,分号则是用在诸如多个函数定义上。
模式匹配:erlang里面很多东西都是基于模式匹配互相传递的,等号不表示赋值,而是进行匹配,如果不匹配,会出错。
第二天接触感受
函数式编程里面,真的全是函数。这种函数还不是以前接触过的类里边的成员函数那种东西,而是数学意义上的函数。自变量,通过公式,公式的嵌套调用等,得到一个计算结果,类似于数学中的y=f(x).
内建有列表和元组,元组相当于c语言里面的结构体了,但是不需要类型的声明什么的,因为erlang全是对模式进行匹配。