リストから二次元配列への変換
30分プログラム、その744。リストから二次元配列への変換を書いてみた。
- Erlangで画像処理がやりたいので、Bitmapを書き出してみよう - みずぴー日記を書いてみた
- でもバイナリとして読み出すので、特定の座標にアクセスするのが大変
- バイナリからRGBのタプルのリストへの変換は画像のグレイスケール化 - みずぴー日記で書いた
というわけで、リストを二次元配列に変換する関数を書いてみた。
使い方
31> C = list2array:list_to_array2(2,[1,2,3,4]). (snip) 32> array:get(0,array:get(0,C)). 1 33> array:get(1,array:get(0,C)). 2 32> array:get(0,array:get(1,C)). 3 33> array:get(1,array:get(1,C)). 4
ソースコード
-module(list2array). -compile([export_all]). list_to_array2(Cols, Xs) -> array:from_list(lists:map(fun array:from_list/1, group(Cols, Xs))). group(_, []) -> []; group(N, Xs) ->] {Ys,Zs} = lists:split(N,Xs), [ Ys | group(N, Zs) ].