Akihito Ikeda

2020年12月15日

posts/2020-12-15diary

昨日は会社のアドベントカレンダーを書いた。会社のイベントにも同じネタで出せたし、バーチャル鹿児島オフィスで一石二鳥。

Elixirのこと何も知らないけどとりあえず書いてみるかと思い、AtCoderのやさしい問題を2つやってみた。

たったこれだけのコードでもけっこう目新しさがある〜。

パイプライン演算子もそうだけどそれ以外の部分を上の提出コードからいくつか抜粋すると、例えばこの部分。

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問」を全部やってみようかな。

“刻”が満ちようとしてる。

© Akihito Ikeda - Last update 13.09.2024 12:24.