2020年12月15日
昨日は会社のアドベントカレンダーを書いた。会社のイベントにも同じネタで出せたし、バーチャル鹿児島オフィスで一石二鳥。
Elixirのこと何も知らないけどとりあえず書いてみるかと思い、AtCoderのやさしい問題を2つやってみた。
- https://atcoder.jp/contests/abc086/submissions/18800908
- https://atcoder.jp/contests/abc081/submissions/18800974
たったこれだけのコードでもけっこう目新しさがある〜。
パイプライン演算子もそうだけどそれ以外の部分を上の提出コードからいくつか抜粋すると、例えばこの部分。
String.to_integer/1
/1
というのはアリティ(引数の数)を表しているらしい。
そしてこの部分。
def solve(a, b) when rem(a * b, 2) == 0, do: "Even"
def solve(_, _), do: "Odd"
when
でガードを表現できるらしい。かっこいいし便利そう。
defmodule Main do
def main do
IO.read(:line)
|> String.trim()
|> solve()
|> IO.puts()
end
def solve(s) do
String.codepoints(s)
|> Enum.map(&String.to_integer/1)
|> Enum.sum()
end
end
こんな感じでパイプラインで繋げて書くのも気持ちいい。明日以降で残りの「解くべき10問」を全部やってみようかな。
“刻”が満ちようとしてる。