Elixirの偶数奇数判定


elixirでは、rem(x, 2) であまりを求められる。
https://elixir-lang.jp/getting-started/basic-operators.html

例えば、奇数のとき足して、偶数のとき何もしない場合、こんな感じにかけばよいと思える。

  defp calc(sum, number) when rem(number, 2) == 1 do
    sum + number
  end

  defp calc(sum, _line) , do: sum

しかし、xがマイナスのときremは-1を返すので、numberがマイナスのとき無視されてしまう。

よって、奇数の場合、こっちのほうがいいかも。

  defp calc(sum, number) when rem(number, 2) != 0 do
    sum + number
  end

  defp calc(sum, _line) , do: sum

偶数チェックはこれでよい。

  defp calc(sum, number) when rem(number, 2) == 0 do
    sum + number
  end

  defp calc(sum, _line) , do: sum