Hatena::Grouperlang

YのErlang

2010-05-11

パラメタライズドモジュール(parameterized modules)について

01:53

2年前くらいに書いた最後のエントリについて時を超えて答えが見つかったので、メモしておきます。

結論からいうとパラメタライズドモジュール(parameterlized modules)というアンドキュメントなErlangの機能でググれば情報がみつかります。

http://userprimary.net/posts/2009/03/04/two-erlang-finds-atomic-names-and-parameterized-modules/

http://www.erlang.se/workshop/2003/paper/p29-carlsson.pdf

使い方は簡単でまずOOで扱いたいモジュールを作成して、

-module(foo, [Name]).
-export([hello/0]).

hello() ->
    io:format("Hello ~p~n", [Name]).

あとはコンパイルするだけで使えます。new/-moduleの第2引数で指定した要素の数、な関数ができているのでそれを使用すると中身的にはタプルなものができて、それを通すと不思議なことにアクセサのように使えます。

1> c(foo).
{ok,foo}.
2> Obj = foo:new("Bar").
{foo,"Bar"}
3> Obj:hello().
Hello "Bar"
ok

ElizabethElizabeth 2012/08/22 18:29 Articles like this make life so much smieplr.

nzcakfiokanzcakfioka 2012/08/23 12:02 qu0t7M <a href="http://dlglkjwjaydw.com/">dlglkjwjaydw</a>

vrfdfexdvrfdfexd 2012/08/24 04:32 CI9j3i , [url=http://pszomjzfdhop.com/]pszomjzfdhop[/url], [link=http://qitwxagqrvjp.com/]qitwxagqrvjp[/link], http://gcrbuoscnoja.com/

ゲスト



トラックバック - http://erlang.g.hatena.ne.jp/jbking/20100511