Hackerrank Currying Solution
- Published
- Updated
- Reading time
- 1 min read
- Length
- 163 words
Currying is a technique in which a function accepts parameters and turns it into a sequence of functions, each of them take 1 parameter.
Example :-
multiply_numbers = -> (x,y) do
x*y
end
doubler = multiply_numbers.curry.(2)
tripler = multiply_numbers.curry.(3)
puts doubler.(4) #8
puts tripler.(4) #12In the above example, lambda take two parameters , and return the product of the two. multiply_numbers.curry.(2) returns a lambda which takes only one parameter necessary for calculation.
Task
You are given a partially complete code. Your task is to fill in the blanks (_______).
Write a curry, which pre-fills with variable .
Solution in ruby#
Approach 1.
power_function = -> (x, z) {
(x) ** z
}
base = gets.to_i
raise_to_power = power_function.curry.(base)
power = gets.to_i
puts raise_to_power.(power)Approach 2.
power_function = -> (x, z) {
(x) ** z
}
base = gets.to_i
raise_to_power = power_function.curry.(base)
power = gets.to_i
puts raise_to_power.(power)Approach 3.
power_function = -> (x, z) {
(x) ** z
}
base = gets.to_i
raise_to_power = power_function.curry.(base)
power = gets.to_i
puts raise_to_power.(power)