Skip to content

Instantly share code, notes, and snippets.

@Harrisonl
Created December 2, 2018 08:04
Show Gist options
  • Save Harrisonl/f9eb4624d76f7de487335ec62f13f484 to your computer and use it in GitHub Desktop.
Save Harrisonl/f9eb4624d76f7de487335ec62f13f484 to your computer and use it in GitHub Desktop.
adevent of code problem 1.2
defmodule Calibrate do
def prob1(freqs), do: Enum.reduce(freqs, 0, &Kernel.+/2)
def prob2(freqs), do: prob2(freqs, %{last: 0}, freqs)
def prob2([], mem, freqs), do: prob2(freqs, mem, freqs)
def prob2([h | t], %{last: last} = mem, freqs) do
n = last + h
case mem[n] do
nil -> prob2(t, Map.merge(mem, %{:last => n, n => true}), freqs)
true -> n
end
end
end
@owenbyrne
Copy link

owenbyrne commented Dec 2, 2018

&Kernel.+/2

TIL 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment