概要
paiza.ioでelixirやってみた。
パイプラインでzundoko書いてみた。
サンプルコード
Stream.repeatedly(fn ->
Enum.random(["ズン", "ドコ"])
end)
|> Enum.reduce_while([], fn x, acc ->
acc
|> (&(List.starts_with?(&1, ["ドコ", "ズン", "ズン", "ズン", "ズン"]) && !List.starts_with?(&1, ["ドコ", "ズン", "ズン", "ズン", "ズン", "ズン"]))).()
|> if(do: {:halt, ["キ・ヨ・シ!" | acc]}, else: {:cont, [x | acc]})
end)
|> Enum.reverse
|> Enum.each(fn x ->
IO.puts x
end)
実行結果
ドコ
ドコ
ドコ
ドコ
ズン
ドコ
ドコ
ズン
ズン
ドコ
ズン
ズン
ズン
ドコ
ドコ
ドコ
ドコ
ドコ
ズン
ズン
ズン
ズン
ドコ
キ・ヨ・シ!
成果物
以上。