SSブログ

Thinking in Erlang 日本語訳 [Erlang]

Erlang の入門ドキュメントで Thinking in Erlang [1] というのが Creative Commons ライセンスで公開されていたのでそれを日本語に訳して [2] Scribd においてみました。なおオリジナルは Word なので印刷したい場合は Word から印刷するのが一番きれいだと思います。

基本的に Java などの経験があって関数型はよく知らないという人向けですが、関数型言語既習者でも Erlang 特有の考え方で新鮮な部分がいくつかあると思います。特にエラー処理の考え方 (Let it Fail) の部分は面白くて、例えば gen_tcp:listen という関数が成否とソケットをまとめてタプルで返すとしたら

{ok, ListenSocket} = gen_tcp:listen(8080, [binary])

としてしまう(ok は定数で ListenSocket は変数)。これで成否が ok でなかった場合はマッチングエラーになるけれどもそれでよくて、特に追加でエラー処理のコードを書こうとするなと。OCaml とかでも let による束縛は実際にはパターンマッチなので左辺に定数を書くことは不可能ではないけれどもあまりやらないような気がします(少なくともコンパイラは警告をだす)。
他にも代入の一切ないコードでプロセスを使ってオブジェクト指向をやるところとかは成程と思えると思います。

入門ドキュメントとして不満な部分も若干ありますが(例えば後半に行くにつれて「やり方だけ示して実際のコードは提示しない」という割合が増えていくとか。しかし文書のメジャーバージョンがまだ 0 なので今後追記していくつもりだったのかもしれない)、とりあえず Erlang の大まかな考え方をつかむにはよいものではないかと思います。

翻訳として至らない点(特に定訳のある用語を使っていないとか)は指摘ください。

[1] http://chuffyrodents.org/erlang.pdf
[2] http://www.scribd.com/doc/45477/Thinking-in-Erlang-Japanese-version


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。