File: comma_splitter.erl

package info (click to toggle)
erlang 1%3A23.2.6%2Bdfsg-1%2Bdeb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 199,804 kB
  • sloc: erlang: 1,509,787; xml: 412,313; ansic: 393,504; cpp: 51,923; makefile: 18,193; sh: 13,051; lisp: 9,681; java: 8,061; python: 5,195; perl: 4,322; asm: 3,586; pascal: 3,435; javascript: 595; sed: 72; php: 2
file content (18 lines) | stat: -rw-r--r-- 470 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-module(comma_splitter).
-export([?MODULE/0]).

?MODULE() ->
    {<<"def">>,<<"cba">>} = split_at_comma(<<"abc,   def">>, <<>>),
    ok.

strip_leading_ws(<<N, Rest/binary>>) when N =< $\s ->
    strip_leading_ws(Rest);
strip_leading_ws(B) ->
    B.

split_at_comma(<<>>, Accu) ->
    {<<>>, Accu};
split_at_comma(<<$,, Rest/binary>>, Accu) ->
    {strip_leading_ws(Rest), Accu};
split_at_comma(<<C, Rest/binary>>, Accu) ->
    split_at_comma(Rest, <<C, Accu/binary>>).