1. 程式人生 > 其它 >Erlang語言學習入門

Erlang語言學習入門

近期研究RabbitMQ,發現它是基於Erlang實現的,於是對Erlang這麼語言發生了興趣,官網地址 http://www.erlang.org/ ,去下載一個最新的版本,我下載的是5.9.1版本,Windows版本R15B01 Windows Binary File (90.7 MB) ,   下載後一路解壓安裝即可,不用單獨做什麼設定,Erlang語言就可以使用了,然後就可以開始使用它裡面的 Eshell程式 進行程式設計。

這是一個命令列程式,可以直接在裡面輸入表示式進行計算,例如來一個簡單的:

Erlang R15B01 (erts-5.9.1) [smp:4:4] [async-threads:0]
Eshell V5.9.1  (abort with ^G)
1> 100+300.
400
2>

注意在語句的結尾輸入“.”以表示完成,回車就開始計算結果了,如上面所示。

下面,我們用記事本寫一個階乘的Erlang程式:

-module(test).
-export([fac/1]).
fac(0) -> 1;
fac(N) -> N * fac(N-1).

這個程式定義了一個叫做 “test”的模組,裡面包含一個名字叫做fac的函式,該函式有1個引數。

按照Erlang的約定,檔名必須跟模組名稱一致,於是我們將這個檔案儲存為 “test.erl”,檔案儲存在D:test1目錄下。

問題來了,怎麼執行這個檔案呢?使用 cd 方法,改變Erlang當前的工作路徑:

2> cd("d:/test1").
d:/test1
ok
3>

然後編譯剛才的程式檔案:

ok
3> c(test).
{ok,test}
4>

注意,編譯命令c 的引數寫 明檔案裡面定義的模組名稱即可,也不用加雙引號。編譯後,將在當前工作目錄下面生成檔案“test.beam”

然後,可以執行模組中的方法了:

4> fac(10).
** exception error: undefined shell command fac/1
5> test:fac(10).
3628800
6>

注意,這裡是使用自定義的“外部模組”,所以執行的時候需要寫明 模組名稱:方法名稱(引數)。

如果下次需要重新載入編譯好的程式怎麼辦?

很簡單,使用 l(模組名稱) 即可,如下例:

6> l(test).
{module,test}
7> test:fac(4).
24
8>

到此為止,安裝、編寫、編譯、執行、載入 一個Erlang 語言程式的全過程就完成了,入門過程還是很簡單吧?

Erlang 學習參考:

Erlang Programming拾零

用Erlang實現領域特定語言

另外安裝後,它本身的幫助文件也比較全面,初學已經完全夠用了。