2014年1月22日

wandboxでのErlang実行方法について

-module( testhalt ).
-export( [ main/1 ] ).

f(N) -> N*2.
f("+", [N1|[N2]]) -> N1 + N2;
f("*", [N1|[N2]]) -> N1 * N2.
 
main(_) -> io:format("~w~n", [f("+", [5, 6])]).

2014年1月12日

Erlangリンク

すごいサイト見つけた
早速読もう
Learn you some Erlang for great good!¶

Erlang公式


Erlangメモ

2進数
2#1010(10)

16進数
-16#EA(-234)

ASCII
$a(97)
$A(65)
$\n(改行 10)

浮動小数点
17.368 -56.654 1.234E-10


表記 説明 データ型
+ 単項+ 整数|浮動小数点
- 単項- 整数|浮動小数点
* 乗算 整数|浮動小数点
/ 浮動小数点除算 整数|浮動小数点
div 整数除算 整数
rem 整数剰余 整数
+ 加算 整数|浮動小数点
- 減算 整数|浮動小数点

アトム
比較のみ、英小文字で始める[a-z]([a-z][0-9]@._)*
または単一引用符で囲む

ブール
true
false

演算子 説明
and 両方の引数がtrueの場合に限りtrueを返す
andalso andのショートカット評価
or いずれか一方の引数がtrueの場合にtrueを返す
orelse orのショートカット評価
xor 排他的論理和
not 単項否定演算子

組(タプル)
波カッコ{...}で囲み、コンマで区切る
組のサイズを返す
tuple_size(組)
要素を取り出す
element(1からのインデックス,組)
要素を設定する
setelement(1からのインデックス,組,値)

リスト
角カッコ[...]で囲み、コンマで区切る
コンス
[Head|Tail]
連結
++
引き算
--

リスト内包
NewList = [Expression || GeneratorExp1, GeneratorExp2, ..., GeneratorExpN, Condition1, Condition2,... ConditionN]


比較演算子
演算子 説明
== 等しい
/= 等しくない
=:= 完全に等しい
=/= 完全に等しくない
=< 等しいかまたは小さい
< 小さい
>= 等しいか大きい
> 大きい

変数
[A-Z][a-zA-Z0-9_]

パターンマッチング
ワイルドカード
_


関数
関数名(引数) ->
文;
関数名(_) ->
文.

ガード
f(N) when N > 100 -> true;
f(_) -> false.


関数呼び出し
モジュール名:関数名

無名関数
fun(args) ->
state;
end


レコード
-record(レコード名, {名前=(初期値),...}).


シェルについて

起動
erl

ドット、終止符をつける

help().

コンパイル
c(ファイル名).

終了
q().


その他
ファイルの先頭に書くこと
-module(modulename).
-compile(export_all).


BIF(Built-in function)