« Classic All Blacks @ Tokyo | トップページ | 白滝 »

2007年5月15日 (火)

Erlang

どうしてプログラマに・・・プログラムが書けないのか?

このエントリを巡ってはてブで one liner 合戦になっていて、fj.unix など思い出してみたのだけど。

ここのところ少し暇なのでいじってみている Erlang で書いてみる。

-module(fizzbuzz).
-export([start/0]).

start([]) -> true;
start([Head | Rest]) ->
  Fb = if
    Head rem 15 == 0 -> "FizzBuzz";
    Head rem 5 == 0 -> "Buzz";
    Head rem 3 == 0 -> "Fizz";
    true -> Head
  end,
  io:format("~p~n",[Fb]),
  start(Rest).

start() ->
  start(lists:seq(1,100)).

この Erlang、読みは「あーらん」である。「えるらんぐ」とか読むとエルフっぽいのだけど、「あーらん」なので妙にイスラム調である。Sweden 生まれで現在は Open Source。並列処理に優れるということで、Erlang 自体は20年ほどの歴史があるのだけど、次世代を担う言語になるかもといわれているそうな。

Erlang の特徴は作者が言うには"Your Erlang program should just run N times faster on an N core processor"というところ(ホンマかいな?)にあるので、要は今流行りの CGM や twitter のように非常に頻度が高く情報更新などのリクエストが飛んでくるものを処理するにはどうしたらよいかという、所謂"C10K Problem"に対する答えの一つになりうるのではないか、ということ。

何か言語を習得しようという1技術者の視点からすると C10K Problem が発生するようなサイト構築のマーケットがそんなに大きいのかしら?(習得したところで自分の市場価値が高くなるのかしら?)というのは甚だ疑問ではあるのだけど、久しぶりに関数型言語で脳トレでもしてみようと思ったので。関数型言語をちゃんとやるのは大学のLisp以来だ。

なるほど、別プロセス(Eralng の中での Process は OSの Processとは異なる)を spawn してお互いやり取りをする、なんてことが非常に簡単に出来るし、サーバを跨いでも簡単である。何か面白いもの作ってみたいなーと思うものの、いい例題が浮かばない。とりあえずもう少し勉強してみよう。

|

« Classic All Blacks @ Tokyo | トップページ | 白滝 »

てっく」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/232324/37749525

この記事へのトラックバック一覧です: Erlang:

« Classic All Blacks @ Tokyo | トップページ | 白滝 »