Erlang語言學習入門
阿新 • • 發佈:2022-04-29
近期研究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實現領域特定語言
另外安裝後,它本身的幫助文件也比較全面,初學已經完全夠用了。