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

相关文章
相关标签/搜索