@@ -57,35 +57,35 @@ defmodule String.Unicode do
5757
5858 # Downcase
5959
60- lc { codepoint , _upper , lower , _title } in list codes , lower && lower != codepoint do
61- l = binary_to_list ( lower ) |> :lists . reverse
60+ def downcase ( string ) , do: do_downcase ( string ) |> list_to_binary
6261
63- def downcase ( unquote ( codepoint ) <> rest , acc ) do
64- downcase ( rest , unquote ( l ) ++ acc )
62+ lc { codepoint , _upper , lower , _title } in list codes , lower && lower != codepoint do
63+ defp do_downcase ( unquote ( codepoint ) <> rest ) do
64+ unquote ( binary_to_list ( lower ) ) ++ downcase ( rest )
6565 end
6666 end
6767
68- def downcase ( << char , rest :: binary >> , acc ) do
69- downcase ( rest , [ char | acc ] )
68+ defp do_downcase ( << char , rest :: binary >> ) do
69+ [ char | do_downcase ( rest ) ]
7070 end
7171
72- def downcase ( "" , acc ) , do: acc |> :lists . reverse |> list_to_binary
72+ defp do_downcase ( "" ) , do: [ ]
7373
7474 # Upcase
7575
76- lc { codepoint , upper , _lower , _title } in list codes , upper && upper != codepoint do
77- u = binary_to_list ( upper ) |> :lists . reverse
76+ def upcase ( string ) , do: do_upcase ( string ) |> list_to_binary
7877
79- def upcase ( unquote ( codepoint ) <> rest , acc ) do
80- upcase ( rest , unquote ( u ) ++ acc )
78+ lc { codepoint , upper , _lower , _title } in list codes , upper && upper != codepoint do
79+ defp do_upcase ( unquote ( codepoint ) <> rest ) do
80+ unquote ( binary_to_list ( upper ) ) ++ do_upcase ( rest )
8181 end
8282 end
8383
84- def upcase ( << char , rest :: binary >> , acc ) do
85- upcase ( rest , [ char | acc ] )
84+ defp do_upcase ( << char , rest :: binary >> ) do
85+ [ char | do_upcase ( rest ) ]
8686 end
8787
88- def upcase ( "" , acc ) , do: acc |> :lists . reverse |> list_to_binary
88+ defp do_upcase ( "" ) , do: [ ]
8989
9090 # Titlecase once
9191
0 commit comments