Erlang 初體驗

2014-01-21, Tuesday
erlang

Erleng, 印象中第一次聽到這個名詞是從政大的雲端課程中教授介紹的。

Erlang_wiki,
Erlang org site

Erlang得名於丹麥數學家及統計學家Agner Krarup Erlang,同時Erlang還可以表示Ericsson Language。Erlang語言由瑞典愛立信電信公司的喬·阿姆斯特朗開始設計,開始於公元一九八零年代。最初是以Prolog程序设计语言為基礎,幾度改版之後,改成以Joe’s Abstract Machine為基礎的獨立語言執行環境。雖然語言風格仍與Prolog相近,不過因Erlang語言設計的走向,Erlang成為具备函數語言特色的程序设计语言[2]。
讓我比較感興趣的是這篇文章 手機群聊的技術門檻 – 一臺伺服器承載多少連線?
文章裡面提到同時承載兩百萬條TCP連線,這令我蠻有興趣的,或許巨量運算中也可以使用類似的技術
以下是一點簡單的學習筆記:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
推薦使用離開指令: q().

Ctrl-A  = 到開頭
Ctrl-E  = 到結尾
Ctrl-T = 從錯誤行跳回正確行

h() = check history


how much history to keep around => history(N) and results(N).
execute a given line again => e(N)
reference result value => v(N).
[N means "line numbers of history"]

pwd = pwd().
cd = cd (..).


200/15.
  -> 13.333333333333334

200 div 15.
  -> 13

200 rem 15.
  -> 5

#convert double floating into integer
round(200/15).
  ->13

#reference result value
8> round(200/15).
13
9> 4*v(8).
52


#Calling Functions
math:sin(0).
math:cos(math:pi()).
#216
math:pow(2,16).

@Erlang uses the 64-bit IEEE 754-1985 double precision

#二進位表示
2#1010111
#十六進位表示
16#cafe

#變數的值只能指定一次,不得改變
X=1.
  -> 1

#宣告完X=1之後執行下面的 command ,表示比較X 是不是10的意思
X=10
  ->  ** exception error: no match of right hand side value 10
X=2-1.
  -> 1

#列出你指定過的所有變數
b().

#forget 曾經指定過的變數
>f(X).
  -> ok
>X=5.
  -> 5

#忘記所有變數
f().

不過…才學完基礎就讓我看到一個更好玩的東西了…
鍊金術~~
Ruby like Erlang! it’s Elixir!!