正如《代碼的未來》中所說,為了充分利用多核,并發變成將成為未來發展的趨勢,對于并發編程的支持,Erlang確實是不二之選,Erlang在國內仍然較為小眾,經典書籍相對也要少很多,最終選擇了《Erlang程序設計 第2版》作為了我的第一本Erlang入門書籍。
Erlang官方網站:http://www.erlang.org/
Erlang安裝:
對于Ubuntu和Debian發行版可采用:apt-get install erlang 來安裝;
對于其他 UNIX 和 Linux 平臺,可以下載源代碼并手工構建它,具體如下所示:
Download:http://www.erlang.org/download.html
復制代碼 代碼如下:
1. 解壓源代碼:$ tar zxf otp_src_17.3.tar.gz
2. $ cd opt_src_17.3
3. $ ./configure
4. $ make
5. $ make install
Erlang是函數式編程語言,被設計主要用來解決自下而上的編寫并發式、分布式、容錯、可擴展和軟實時系統等問題。
由于之前沒有接觸過函數式編程,還是從簡單的順序編程一步步來吧。
Erlang進入shell編程環境很簡單,與Python類似,在終端直接輸入erl即可,退出可使用 Ctrl+c 再輸入 a 的方法,但這樣可能導致某些數據的破壞,最好使用 q().
注釋:%
變量:所有變量名都必須以大寫字母開頭,變量一經賦值,不許改變,
模式匹配操作:
Lhs = Rhs 意思是計算右側的值,然后將結果與左側的模式相匹配;
X = Expression,如果X之前沒有被賦值,一定會匹配成功,X = AnotherExpression,則只有在Expression = AnotherExpression時才匹配成功,否則匹配失??;
浮點數:
使用“/”給兩個整數做除法時,結果會自動轉換為浮點數;
要從除法里獲得整數,必須使用div和rem;例如:5 div 3. 結果為1,5 rem 3. 結果為2;
原子:
原子被用于表示常量值,具有全局性,原子以小寫字母開頭,后接一串字母,數字,下劃線或@符號;
原子可以放在單引號中,可以創建以大寫字母開頭或包含字母數字以外字符的原子,如:‘Monday',‘+',‘a test paper'等,原子的值就是它本身;
元組:
為了方便理解,元組最好加上標簽,例如:{point, 10, 45}.
創建元組:F = {firstName, joe}. L = {lastName, Tom}. P = {person, F, L}.
提取firstName:{_, {_, Who}, {_, _}} = P.
列表:
列表中的各元素可以是任何類型,[H|T]中H為列表頭,T為列表尾,例如:
L = [{name, tom}, 1, 2.0, test, {point, 10, 23}].
[H|T] = L.
則,H = {name, tom}, T = [1, 2.0, test, {point, 10, 23}].
字符串:
字符串字面量就是用雙引號圍起來的一串字符,例如:
N = "Hello". "Hello"其實只是一個列表的簡寫,這個列表包含了代表字符串里各個字符的整數字符代碼。
X = [97, 98, 99] .
打印出"abc".
io:format("~w~n", ["abc"]).
打印出[97, 98, 99]
[H|T] = "cat". H = 99, T = "at".
f()讓shell忘記現有的任何綁定。