Elixir 初嘗試 1 -- 這裏的等號不同 & 不變的數據

Elixir是個什麼鬼

自行百度維基google編程

Elixir 這裏的等號不同

當等號‘=’不是賦值,而是匹配(match opertator),變得更像斷言,更像咱們初中開始學代數的時候。
P.S.
^(脫字符),強制讓變量的已有值參與匹配函數式編程

Elixir 函數式編程--不可變的數據 纔是好用的數據

編程就是進行數據轉換,而不是數據修改。因此咱們期待函數

some_value=[some_object];
print(some_value);
do_something_with(some_value);
print(some_value);

先後兩次打印的變量並無變,應該說此時變量都不能稱之爲變量,叫它爲值更合適些。
而函數則是對值進行變換的引擎,一切魔法所在。性能

按常規想法,由於elixir的值都是不可變的,因此在進行轉換的時候,須要一個副本,涉及到copy,性能很渣吧,NO
緣由是既然值都是不變的,直接拿來用就行了。
好比google

iex(9)> list1=[2,3,4,1]
[2, 3, 4, 1]
iex(10)> list2 =[6|list1]
[6, 2, 3, 4, 1]

list2 就是直接使用list1做爲尾項,用6做爲首項生成的[2,3,4,1]的值也不會變。code

相關文章
相關標籤/搜索