2012年3月4日日曜日

Erlang crypto rand_uniform サンプル

タイトル通り crypto:rand_uniform のサンプルを。

1番苦労したのは、モジュールのロードでした。

普通にやっていたら、「定義されていない関数だ」みたいなエラーがでました。

そこを踏まえ、サンプルの提示です。

◆モジュールのロード

ソースのコンパイル時にオプションを付ける。

使用したいモジュールが使えるようになる。

今回はcryptoモジュールなので、そのbeamがある場所を-pzのあとに指定する。

$> erlc -pz C:/erl5.9/lib/crypto-2.1/ebin test_crypto_uniform.erl

あとは、コンパイルしたモジュールを実行する。

$> erl -noshell -run test_crypto_uniform start -run init stop

◆ソース

-module(test_crypto_uniform).
-compile([export_all]).
%-import( crypto, [ rand_uniform/2 ] ).

start() ->
    Rand = crypto:rand_uniform(100, 10000),
    io:format( "rand:~p~n", [Rand] ),
    timer:sleep( Rand ).