Erlang入門
6989 ワード
一、Erlang Shellを起動&終了
$erl//起動
$ halt().//終了
二、コンパイルと実行
サンプルコード:
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に似ています)
4、リスト
5、文字列
四、関数
注意:関数の戻り値は、最後の文の値です.
いくつかの一般的な関数pwd()現在の作業ディレクトリls()を印刷現在のディレクトリをリストするすべてのファイルcd(Dir)現在の作業ディレクトリを変更する
$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)現在の作業ディレクトリを変更する