メモ

Eralng Course もくじ

公式サイトにある Erlang Courseを適当に訳したものです。 [メモ] Eralng Course * Module 1 - History * Module 2 - Sequential Programming (前編) * Module 2 - Sequential Programming (中編) * Module 2 - Sequential Programming (後編) * Module 3 - …

Eralng Course: Module 3 - Concurrent Programming 後編

もくじ 登録されたプロセス (Registered Processes) register(Alias, Pid) プロセスID: Pid のプロセスを別名(Alias)に登録 start() -> Pid = spawn(num_anal, server, []) register(analyser, Pid). analyse(Seq) -> analyser ! {self(),{analyse,Seq}}, re…

Eralng Course: Module 3 - Concurrent Programming 中編

もくじ 選択的メッセージ受信 (Selective Message Reception) 以下のとき、メッセージの発信順序とは関係なく、 foo, bar の順に受信処理される。 recieve foo -> true end, recieve bar -> true end どのメッセージも選択 (Selection of any message) 以下…

Eralng Course: Module 3 - Concurrent Programming 前編

もくじ 定義(Definitions) * プロセス Process - 並列動作。完全な仮想マシン。 システムはたくさんの並列プロセスを 同時に実行することがある。 * メッセージ Message - プロセス間通信手段 * タイムアウト Timeout - あたえられた時間の間、待機するしく…

Eralng Course: Module 2 - Sequential Programming (後編)

もくじ リスト操作 ( Traversing Lists ) よくあるパターン (このへんはProlog) Xを合計するsum関数の結果を、 Xの数を出すlen関数の結果で割った ものが avarage ですよ。 average(X) -> sum(X) / len(X). sumはリストの一番前と、その 残り要素のsumを足し…

Eralng Course: Module 2 - Sequential Programming (中編)

もくじ 関数呼出(Function Calls) 関数名はアトムのルールに沿っている必要がある コロン区切りでモジュール名を前置。 引数にはErlangのあらゆるデータ構造が入る。 module:func(Arg1, Arg2, ... Argn) func(Arg1, Arg2, .. Argn) 引数の数が異なる関数は別…

Eralng Course: Module 2 - Sequential Programming (前編)

もくじ 数値(Numbers) 普通に数値を書く 2#1010, 16#1AD3: 数字+シャープで2進16進。 $A: $マークは Char->Ascii 123.45: 小数点をうつと float 123E-10: 有効数字のパターンでもかけるよ アトム(Atoms) 普通に文字を書く aaaa : "aaaa"という文字 'I am' : …

Eralng Cource: Module 1 - History

もくじ * 基礎部分に、並列性とエラー回復能力 を持っていなければならない * 実行モデルにはバックトラッキングは必須ではない (Lisp/Prolog にない特性) * 並列性の粒度 - 1非同期通信=1言語内プロセス (Parlog にない特性) * そこで、Lisp/Prolog/Parlog …