This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| defp get_two([first | [_second | rest]]) do | |
| get_two([first | rest]) | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| defp get_two([first | [second | _rest]]) when first + second == @sum do | |
| first * second | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| defmodule Accountant do | |
| @sum 2020 | |
| defguard equals_twenty_twenty(first, second) when first + second == @sum | |
| def product_of_equals_twenty_twenty(list, product \\ nil) | |
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| defmodule Accountant do | |
| @sum 2020 | |
| def product_of_equals_twenty_twenty(list, product \\ nil) | |
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| defmodule Accountant do | |
| @sum 2020 | |
| def product_of_equals_twenty_twenty(list, product \\ nil) | |
| 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 | |
| # ... |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| defmodule Accountant do | |
| @sum 2020 | |
| def product_of_equals_twenty_twenty([]), do: :noop | |
| def product_of_equals_twenty_twenty([_head | tail] = list) do | |
| product = get_two(list) | |
| if product do | |
| product | |
| else | |
| product_of_equals_twenty_twenty(tail) | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| defmodule Accountant do | |
| @sum 2020 | |
| def product_of_equals_twenty_twenty([]), do: :noop | |
| def product_of_equals_twenty_twenty([_head | tail] = list) do | |
| product = get_two(list) | |
| if product do | |
| product | |
| else | |
| product_of_equals_twenty_twenty(tail) | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| defmodule Accountant do | |
| @sum 2020 | |
| def product_of_equals_twenty_twenty([_head | tail] = list) do | |
| product = get_two(list) | |
| if product do | |
| product | |
| else | |
| product_of_equals_twenty_twenty(tail) | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| defmodule Accountant do | |
| @sum 2020 | |
| def product_of_equals_twenty_twenty([_head | tail] = list) do | |
| product = get_two(list) | |
| if product do | |
| product | |
| else | |
| # keep going | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| defmodule Accountant do | |
| @sum 2020 | |
| # ... | |
| defp get_two(list) when length(list) == 1, do: nil | |
| defp get_two([first | [second | _rest]]) when first + second == @sum do | |
| first * second | |
| end | |
| defp get_two([first | [_second | rest]]) do |