2012年1月11日水曜日

Erlang arrayモジュール まとめ(from_orddict)


arrayモジュールのfrom_orddict関数について

なんと、{Key,Value}型を値とするリストをarrayプロセスにしてしまう。

■from_orddict(Orddict::list()) -> array()
    from_list(List, undefined)と同等

■from_orddict(List::list(), Default::term()) -> array()

  リストをarrayに変換する。初期値はDefaultの値。Listがリストでない場合、badargエラーである。

【実行例】
1> L0 = [{0,3},{1,4},{2,6}].
[{0,3},{1,4},{2,6}]
2> array:from_orddict(L0).
{array,3,10,undefined,
       {3,4,6,undefined,undefined,undefined,undefined,undefined,
        undefined,undefined}}
3> array:from_orddict(L0,0).
{array,3,10,0,{3,4,6,0,0,0,0,0,0,0}}
4> L1 = L0 ++ [{5,7},{10,9}].
[{0,3},{1,4},{2,6},{5,7},{10,9}]
5> array:from_orddict(L1).
{array,11,100,undefined,
       {{3,4,6,undefined,undefined,7,undefined,undefined,undefined,
         undefined},
        {9,undefined,undefined,undefined,undefined,undefined,
         undefined,undefined,undefined,undefined},
        10,10,10,10,10,10,10,10,10}}
6> array:from_orddict(0).
** exception error: bad argument
     in function  array:from_orddict/2