Re:Practicing Elixir or any programming language
by hokiewv on Friday August 25, 2017 @09:33AM
(#15098260)
I agree though one thing I would caution is it is good practice to always return the same type from a function even though it is an untyped language. The whole thing can be boiled down even more if pattern matching is used in parsing the initial string.
[ Parent
| on HN ]
Re:Practicing Elixir or any programming language
by midgetjones on Friday August 25, 2017 @09:58AM
(#15098428)
Good point! If you're going to pattern match in the initial string then who even needs the second function?
def convert("12:" <> <<m::bytes-size(2)>> <> ":" <> <<s::bytes-size(2)>> <> "AM") do
"00:#{m}:#{s}"
end
def convert(<<h::bytes-size(2)>> <> ":" <> <<m::bytes-size(2)>> <> ":" <> <<s::bytes-size(2)>> <> "PM") do
h = 12 + String.to_integer(h)
"#{h}:#{m}:#{s}"
end
def convert(<<h::bytes-size(2)>> <> ":" <> <<m::bytes-size(2)>> <> ":" <> <<s::bytes-size(2)>> <> "AM") do
"#{h}:#{m}:#{s}"
end
Whether that's an improvement or not is another matter :)
Re:Practicing Elixir or any programming language
by ericdouglas on Saturday August 26, 2017 @08:59AM
(#15105238)
Crazy stuff! :D
I'm wondering how our future-self would feel about such cleverness haha
Re:Practicing Elixir or any programming language
by ericdouglas on Saturday August 26, 2017 @08:18AM
(#15105131)
I really liked this:
"#{String.to_integer(hours) + 12}"
Used it now refactoring the code, many thanks for your suggestion!