tomohikoのブログ
ラベル
Erlang
の投稿を表示しています。
すべての投稿を表示
ラベル
Erlang
の投稿を表示しています。
すべての投稿を表示
2012年3月4日日曜日
Erlang crypto rand_uniform サンプル
›
タイトル通り crypto:rand_uniform のサンプルを。 1番苦労したのは、モジュールのロードでした。 普通にやっていたら、「定義されていない関数だ」みたいなエラーがでました。 そこを踏まえ、サンプルの提示です。 ◆モジュールのロード ソースのコン...
Erlang ロード モジュール 検索パス 設定
›
Erlangのリファレンスには、ちゃんとモジュールがあるが、実際に動かそうとすると、そんなモジュールないよと怒られる。 そんなときにはどうするか。 モジュールをロードしよう。 ◆Erlangシェルの場合 .(ピリオド)erlangに設定する Erlangシェ...
2012年3月3日土曜日
Erlang プロセス 生成 サンプル
›
Rubyの勉強をしている。 そのとき、スレッドを並行実行するサンプルを丸写しした。 そのサンプルをErlang版として記述した。 以下にそれをコピペしておく。 ◆並行実行動作 1.2つのプロセスが生成される。 2.それぞれのプロセスはある時間(秒)スリープして、時間...
2012年2月29日水曜日
Erlang peername 接続相手のIPとPort
›
◆ peername :接続元のIPとPort番号を返却する peername(Socket) -> {ok, {Address, Port}} | {error, posix()} Types: Socket = socket() Address = ip_addre...
2012年2月26日日曜日
Erlang timer server
›
下記URLにあるタイマーサーバを真似てみた。 Erlang Programming Language : http://www.erlang.org/article/15 サーバと通信するクライアントも作った。 サーバは現在日付と時刻を返す。 クライアントはそれを表示...
2012年2月25日土曜日
Erlang gen_tcp:connect { active, false } オプション
›
tcpの勉強をしている。 Cのプログラムを組んで、Erlangでも試してみることをしている。 そこで、Erlangのオンラインマニュアルにあるサンプルを動かしてみた。 Erlang -- gen_tcp : http://www.erlang.org/doc/man/ge...
2012年2月22日水曜日
Erlang TCP接続2 HTTPサーバ(超簡易)
›
TCPの勉強のつづき。 ローカル上でHTTPサーバを立てて、ブラウザで「Hello」と表示する。 C言語で実装したものをErlangでやってみた。 ソースを貼るが、もっとわかりやすいソースがWebにあったので、そちらをまず紹介。 Erlang で httpd - プロ...
2012年2月19日日曜日
Erlang TCP接続
›
通信の勉強中。CでTCPをつかった通信のサンプルコードをサイトを見ながら書いた。 そこで、Cで書いたものと(ほとんど)同じものをErlangで書いた。 動作の概要を以下にイメージ図で示す。 client が一回だけ server に接続して、送られてきたデータ(H...
2012年2月18日土曜日
Erlang 2プロセスでフィボナッチ数計算
›
Erlangで2プロセス(Erlangの軽量プロセスのこと)起動し、それぞれのプロセスがhandler_loop(count_loop)から自然数を取得し、39までのフィボナッチ数を計算する。 1つのプロセスが自然数Nのフィボナッチ数を計算し始めたら、もうひとつのプロセスはN...
2012年2月7日火曜日
Erlang AVL Tree まだ途中
›
コンパイルは通した。 deleteのユニットテストがまだ。 それにしても、ブログに書くと、見難い。 ◆ソース -module( avl_tree ). -ifdef( debug ). -compile( export_all ). -else. -exp...
2012年2月4日土曜日
Erlang avl tree insert を作った
›
今日は、AVL tree の挿入を。 アルゴリズムは、各自Wikipedia等でお願いします。 わかりづらいソースなので、コメントを厚くしたものを載せるつもりです。 ◆ソース -module( avl_tree_insert ). -ifdef( debug )...
2012年1月25日水曜日
Erlang 2分探索木 take_smallest 最小ノード取り出し
›
今日は、2分探索木の削除の一部を。 2分探索木のツリーからあるノードを削除する場合、削除対象ノードの右の部分木から最小のノードを取り出し、削除対象ノードと置き換える動作を行う。 削除の中核をなすこの動作のソースを記載したいと思う。 ◆take_smallest/1 ...
2012年1月22日日曜日
Erlang 2分探索木 更新 update
›
今日は、2分探索木の更新(update/3)を。青文字部分はユニットテストのためのソース。 仕様は以下の2点。 1.更新するノード(Key)がある場合、Valueを更新する。 2.更新するノード(Key)がない場合、対象ノードを挿入する。 ◆ソース -module...
Erlang 2分探索木 挿入 insert
›
今日は、2分探索木のinsertを作ってみた。 ■insert/2 insert( Key, Value , Tree ) -> tree() | {key_exists, Value } {key_exists, Value }はすでに同一キーがTreeにある場合...
2012年1月21日土曜日
Erlang io:format デバッグ 可変引数
›
Erlangには、可変引数がないみたい。検索に引っかからない。 どうにか、デバッグ(io:format)で可変引数っぽくできないかと考え、作ってみた。 ■ソース -module(va_args). -export([start/0]). -define( LOG( ...
Erlang 2分探索木 探索 lookup
›
今日は、2分探索木の探索についてのソースを。 【データ構造】 -record( tree, { key, value, smaller, bigger } ). タプルだね。 【アルゴリズム】 基本的な2分探索木のサーチ ■ソース(gb_tree.erlを参考に作...
2012年1月17日火曜日
Erlang queueモジュールによるstackモジュール作成
›
stackモジュールがないので、作ってみた。突貫で。 コンパイルとおしただけ。 1番下にある追記参照。 【ソース】 -module(stack). -ifdef(debug). -include_lib("eunit/include/eunit.hr...
Erlang 2分探索 速報版
›
サンプル(速報版) -module(binary_search). -export([search/2]). -include_lib("eunit/include/eunit.hrl"). -define(Middle,Mid = (Lo + Hi...
›
ホーム
ウェブ バージョンを表示