AtCoderで問題を解いているときのこと、
Elixirを使って文字列を一文字ずつsplitしたいことがあったので、書き方をメモしておこうと思います。
String.codepoints
https://hexdocs.pm/elixir/String.html#codepoints/1
iex(1)> String.codepoints("hogehoge")
["h", "o", "g", "e", "h", "o", "g", "e"]
別の関数に渡したいときは|>を使って
placing_marble.ex
defmodule Main do
def placing_marble(seq) do
seq |> String.codepoints
|> Enum.map(&String.to_integer(&1))
|> Enum.reduce(0, &(&1 + &2))
end
def main do
seq = IO.read(:line) |> String.trim()
IO.puts placing_marble(seq)
end
end
ソースは下記の問題を解いたときのものです
A - Placing Marbles