2012年1月10日火曜日

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

夜も遅いので、軽いやつを。
リストからarrayモジュールへの変換関数。

■from_list/1
【構文】
from_list(List :: list()) -> array()
→from_list(List,undefined)と等しい。

【実行例】
18> L0 = [1,2,3,4].
[1,2,3,4]
19> array:from_list(L0).
{array,4,10,undefined,
       {1,2,3,4,undefined,undefined,undefined,undefined,undefined,
        undefined}}

■from_list/2
【構文】
from_list(List :: list(), Default :: term()) -> array()
→リストから拡張可能arrayモジュールへ変換します。第2引数のDefaultはarrayモジュールの初期化されていない部分の初期値に使われる。第1引数のListがリストじゃなければ、badargエラーを返す。

【実行例】
18> L0 = [1,2,3,4].
[1,2,3,4]
23> A1= array:from_list(L0,0).
{array,4,10,0,{1,2,3,4,0,0,0,0,0,0}}

■from_list/1 と from_list/2 の違い
初期値がundefinedかオプションのものか。

■その他
見てわかるとおり、初期Maxサイズは10みたい。


メモ:
実はfoldl/3の実行例を作成しようとしていたんだけど、まだちょっとよくわからないのと、いい例が見つからない。