Erlang入門

6989 ワード

一、Erlang Shellを起動&終了
$erl//起動
$ halt().//終了
二、コンパイルと実行
サンプルコード:
-module(hello).
-export([start/0]).

start() ->
    io:format("Hello worl~n").

1,Erlang shellで
$ erl
1> c(hello).
2> hello:start().
2,システムShellで
$ erlc hello.erl
$ erl -noshell -s hello start -s init stop
%%%-s init stopは、最後にinit:stop()関数を実行することを示します.
三、変数/定数(原子)/メタグループ/リスト/文字列
1、変数
%%code begin%%
1> Var=1. %% 変数付与1 2>Var.%%印刷変数1
%%code end%%
Erlangの変数は大文字で開き、割り当ては1つしかありません(パターンマッチング).
2,定数(原子)
原子は小文字で始まり、後はアルファベット/数字/下線/at記号(@)
3、メタグループ(Cの中のstructに似ています)
struct point {
    int x;
    int y;
} P;
1> Point = {point,20,25}. %%     
{point,20,25}
2> {point,X,Y}=Point. %%          X,Y
{point,20,25}
3> X. %%     X
20
4> Y. %%     Y
25
1> Pc={{cpu,"intel i7"},{memory,"Kingston 8G"}}. %%     
{{cpu,"intel i7"},{memory,"Kingston 8G"}}
2> {_,{_,Memory}}=Pc. %%          Memory,  _(   )     ,        。
{{cpu,"intel i7"},{memory,"Kingston 8G"}}
3> Memory.
"Kingston 8G"

4、リスト

1> [First,Second|Tail] = [1,2,3,4,5]. %%       
[1,2,3,4,5]
2> First.
1
3> Second.
2
4> Tail.
[3,4,5]

5、文字列

1> X="Hello!". %%          
"Hello!"
2> X.
"Hello!"
3> f(). %%     Shell     
ok
4> X.
* 1: variable 'X' is unbound

四、関数

-module(geometry). %%     
-export([area/1]).

area({rectangle,Width,Height}) ->
    Width * Height;
area({square,Side}) ->
    Side * Side.

1> geometry:area({rectangle,10,20}). %%       
200
2> geometry:area({square,5}). %%        
25

注意:関数の戻り値は、最後の文の値です.
いくつかの一般的な関数pwd()現在の作業ディレクトリls()を印刷現在のディレクトリをリストするすべてのファイルcd(Dir)現在の作業ディレクトリを変更する