Skip to content

Instantly share code, notes, and snippets.

def product_of_equals_twenty_twenty(_list, product) when product != nil, do: product
defp get_two([first | [second | _rest]])
when equals_twenty_twenty(first, second) do
first * second
end
defmodule Accountant do
@sum 2020
defguard equals_twenty_twenty(first, second) when first + second == @sum
# ...
defp get_two(list) when length(list) == 1, do: nil
def product_of_equals_twenty_twenty([_head | tail] = list, _product) do
product_of_equals_twenty_twenty(tail, get_two(list))
end
def product_of_equals_twenty_twenty([_head | tail] = list, _product) do
product_of_equals_twenty_twenty(tail, get_two(list))
end
def product_of_equals_twenty_twenty(_list, product) when product != nil, do: product
def product_of_equals_twenty_twenty([_head | tail] = list, _product) do
product_of_equals_twenty_twenty(tail, get_two(list))
end
Accountant.product_of_equals_twenty_twenty([979, 1721, 366, 299, 675, 1456])
defp get_two(list) when length(list) == 1, do: nil