@@ -57,35 +57,35 @@ defmodule String.Unicode do
57
57
58
58
# Downcase
59
59
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
62
61
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 )
65
65
end
66
66
end
67
67
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 ) ]
70
70
end
71
71
72
- def downcase ( "" , acc ) , do: acc |> :lists . reverse |> list_to_binary
72
+ defp do_downcase ( "" ) , do: [ ]
73
73
74
74
# Upcase
75
75
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
78
77
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 )
81
81
end
82
82
end
83
83
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 ) ]
86
86
end
87
87
88
- def upcase ( "" , acc ) , do: acc |> :lists . reverse |> list_to_binary
88
+ defp do_upcase ( "" ) , do: [ ]
89
89
90
90
# Titlecase once
91
91
0 commit comments