リストから二次元配列への変換

30分プログラム、その744。リストから二次元配列への変換を書いてみた。

というわけで、リストを二次元配列に変換する関数を書いてみた。

使い方

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) ].