Erlang

Erlang で分散 ApacheBench もどき

書いてみた。どうも綺麗に書けてる気がしないのだが。(関数型の書き方に慣れてないのか……) ソースコードは末尾に。HTTP のリクエストを並列に投げる部分はこんな感じで。 worker(): manager から URI を受け取って http:request()、結果を manager に戻す ma…

RBridge::Erlang を Perl から呼ぶ

とりあえず、はじめてのErlanモジュール作成ということで悩んだ結果、RubyからErlangのメソッドを呼び出すRBridge::Erlangを作った。 http://rakuto.blogspot.com/2007/05/ruby-and-erlang-rbridgeerlang.html Young risk taker.: [Ruby and Erlang] そろそ…

Erlangでたらい回し 遅延評価版

closure を使えば遅延評価できるとな。 λ萌え - たらいを後回し 実は、closureをサポートしている言語であれば、遅延評価は可能だったりする。明示的にやらなければならないものの、それを明示するのは実に簡単だ。 まず、遅延評価したい値は、ただclosureで…

Erlangでたらい回し

まずは普通に。 -module(tak). -compile(export_all). tak( X, Y, Z ) -> if X =< Y -> Y; true -> tak( tak( X-1, Y, Z ), tak( Y-1, Z, X ), tak( Z-1, X, Y ) ) end. bench( X, Y, Z ) -> { Time, Ans } = timer:tc(?MODULE, tak, [X, Y, Z]), io:format(…

erlang で書かれた Wiki

Erlangで書かれたWiki - スコトプリゴニエフスク通信 から http://www.sics.se/~joe/tutorials/wiki/wiki.html を見て、とりあえず動かしてみんだけど、 $ ab -c 10 -n 10000 "http://localhost:4992/wiki/showPage?node=home" Requests per second: 1650.08…

erlang で並列 HTTP request

まだ erlang の基礎もロクに勉強してないというのに、単に面白そうだから、という理由で並列プログラミングに手を出してみた。 HTTP get を複数の URL に対して並列で発行する。全体の構造は以下のようなもので。 main manager プロセスを作成 引数で受けた …

FizzBuzz

erlang 初めて書いた。 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 http://www.aoky.net/articles/jeff_at…