自行百度維基google編程
當等號‘=’不是賦值,而是匹配(match opertator),變得更像斷言,更像咱們初中開始學代數的時候。
P.S.
^(脫字符),強制讓變量的已有值參與匹配函數式編程
編程就是進行數據轉換,而不是數據修改。因此咱們期待函數
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