Hello, I am working through Exercism.io Secrets module the first 6 functions I was able to figure out just fine. The last one I am stuck on.
This is the instruction for it:
Implement Secrets.secret_combine/2
. It should return a function which takes one argument and applies to it the two functions passed in to secret_combine
in order.
multiply = Secrets.secret_multiply(7)
divide = Secrets.secret_divide(3)
combined = Secrets.secret_combine(multiply, divide)
combined.(6)
# => 14
Hints and tips :
Create a function combiner
- Return an anonymous function which composes the functions passed in to
Secret.secret_combine/2
. - Use a
.
before()
when calling an anonymous function.
Below is where my solutions start, like I said the first 6 functions I did just fine on it’s just the last one.
defmodule Secrets do
def secret_add(secret) do
fn(a) -> a + secret end
end
def secret_subtract(secret) do
fn(a) -> a - secret end
end
def secret_multiply(secret) do
fn(a) -> a * secret end
end
def secret_divide(secret) do
fn(a) -> div(a, secret) end
end
def secret_and(secret) do
use Bitwise, only_operators: true
fn(a) -> a &&& secret end
end
def secret_xor(secret) do
use Bitwise
fn(a) -> bxor(a, secret) end
end
def secret_combine(secret_function1, secret_function2) do
end
end