code

2017年1月21日 星期六

Erlang筆記2 - Variable binding and Pattern Matching

Variables & Atoms

variables應該不能說是variables,因為其實是immutable,是大寫英文字開頭。
atoms就是literals,是小寫英文字開頭。

erlang不提供mutable variable,跟Scala不一樣,erlang是一個pure functional language。

另外一個更棒的是:no class, instance, global variable!!!!!!!
所有variable都是function scope,這太美妙了吧!

atoms就是constants, enums。

= operator as pattern matching 

在variable還沒被bind之前,這是assignment (binding),此時variable被bind成某個pattern。

但是一個bounded variable來說,這是pattern matching operator。

A = B   %%evaluate B then matches A

如果一個variable已經被bind成某個pattern,例如一個tuple:


則 = operator就可以用來把Point裡面的3-tuple成員們extract出來(當然pattern要是一個3-tuple with unbind members):



當然跟其他FP類似,如果不care某些data,可以用 anonymous variable _ 符號承接:



pattern matching範例



沒有留言:

張貼留言