|> Kernel.==(0) |> if(do: "Yes", else: "No") Elixir is beautiful


はじめに

https://atcoder.jp/contests/abc188/tasks/abc188_b

私の回答

  • 問題文はリンク先をご参照ください
  • 計算結果が0のときは"Yes"、それ以外のときは"No"を出力しなさいというような問題です
  • こういう問題のときには、私は、... |> Kernel.==(0) |> if(do: "Yes", else: "No")と書くことにしています
defmodule Main do
  def main do
    IO.read(:line)
    list_a = IO.read(:line) |> String.trim() |> String.split(" ") |> Enum.map(&String.to_integer/1)
    list_b = IO.read(:line) |> String.trim() |> String.split(" ") |> Enum.map(&String.to_integer/1)

    Enum.zip(list_a, list_b)
    |> Enum.reduce(0, fn {a, b}, acc ->
      acc + a * b
    end)
    |> Kernel.==(0)
    |> if(do: "Yes", else: "No")
    |> IO.puts()
  end
end
  • Kernel.==/2だって、if/2だって、Pipe operator |>でつなげちゃうんです
  • だからどうした? と言われると説明はできないのですが、これをみて私は$\huge{美しい}$
  • とおもうわけです
    • 「だからどうした?」 と言われたとき、私は自信がもてないことだと自分が言っていることが変なのかなあと尻込みしちゃうわけですけど、このPipe operator |>に関しては理由を言えと言われたら、$\huge{美しいとおもうから美しいのです!}$
    • と堂々と言い張ります
    • (えっ!? なんで伝わんないの? て)(心の声)
    • 好きとか美しいとかおもうものにいちいち理由なんて必要ですか? 私は美しいとおもっているのです
  • (またまたたびたびお名前を出して申し訳ありませんが、)あんちぽさんはおしゃれと感じるわけです

Wrapping Up 🎍🎍🎍🎍🎍

  • みんな、大好きPipe operator |>
    • ここのみんなElixirが好きな人たちのことでしょう
  • みなさんもお好きな言語でプログラミングを楽しみましょう
  • Enjoy Elixir