bigfleet (owner)

Fork Of

Revisions

gist: 187814 Download_button fork
public
Public Clone URL: git://gist.github.com/187814.git
Embed All Files: show embed
packer.erl #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-module(packer).
 
-export([pack/1, test/0]).
 
pack(Data) ->
  pack(Data, []).
 
test() ->
  [[a, a, a], [b, b, b]] = packer:pack([a,a,a,b,b,b]),
  [[a,a,a,a], [b], [c, c], [a, a], [d], [e, e, e, e]] = packer:pack([a,a,a,a,b,c,c,a,a,d,e,e,e,e]),
  ok.
 
%% Internal functions
pack([], Accum) ->
  lists:reverse(Accum);
pack([H|T], []) ->
  pack(T, [[H]]);
pack([H|T], [AH|AT]=Accum) ->
  case lists:member(H, AH) of
    true ->
      pack(T, [[H|AH]|AT]);
    false ->
      pack(T, [[H]|Accum])
  end.