re: AoC Day 1: Chronal Calibration VIEW POST

TOP OF THREAD FULL DISCUSSION
re: Is it normal that part 2 is killing my CPU :D ? It's been running for minutes in Elixir but nada. Anyhow, I've tried day 1 with all three language...
 

I totally thought my elixir one was dead at first too, so I kept killing it. Only about a 15 second run time though I'm just impatient. lemme look at yours!

 

Please do, I found a solution at the end, using reduce_while, instead of recursion:

repeated_numbers = Stream.cycle(numbers)
repeated_sum = Enum.reduce_while(repeated_numbers, {0, MapSet.new([0])}, fn i, {current, totals} ->
  sum = current + i

  if MapSet.member?(totals, sum) do
    {:halt, sum}
  else
    {:cont, {sum, MapSet.put(totals, sum)}}
  end
end)
IO.puts(repeated_sum)

I feel like I should get through the tutorial at least :D

code of conduct - report abuse