Advertisement
Guest User

Untitled

a guest
Dec 5th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Erlang 0.54 KB | None | 0 0
  1. defmodule Two do
  2.   def calculate(file) do
  3.     file
  4.     |> File.read!()
  5.     |> String.split("\n")
  6.     |> Stream.reject(&(&1 == ""))
  7.     |> Stream.reject(&is_nil/1)
  8.     |> Stream.map(&String.to_integer/1)
  9.     |> Stream.cycle()
  10.     |> Enum.reduce_while({0, MapSet.new()}, fn i, {current_frequency, seen} ->
  11.       new_frequency = current_frequency + i
  12.  
  13.       if MapSet.member?(seen, new_frequency) do
  14.         {:halt, new_frequency}
  15.       else
  16.         {:cont, {new_frequency, MapSet.put(seen, new_frequency)}}
  17.       end
  18.     end)
  19.   end
  20. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement