In this HackerRank Partial Applications problem solution in ruby programming In Partial Application, we create a lambda that takes a parameter and returns a lambda that does something with it.
Example:
multiply_function = -> (number) do
-> (another_number) do
number * another_number
end
end
doubler = multiply_function.(2)
tripler = multiply_function.(3)
puts doubler.(4)
puts tripler.(4)
In the above example, the lambda will take number as a parameter, and return a lambda. When you call this lambda with another_number, it will return the product of the two.
Task
You are given a partially complete code. Your task is to fill in the blanks (_______).
Here, the combination is a variable that stores a partial application that computes combination nCr.
Problem solution.
class Integer def fact (1..self).reduce(:*) || 1 end end combination = -> (n) do -> (r) do n.fact / (r.fact*(n-r).fact) end end n = gets.to_i r = gets.to_i nCr = combination.(n) puts nCr.(r)
Second solution.
combination = -> (n) do -> (r) do top = (n-r+1..n).reduce(:*) top/(1..r).reduce(:*) end end n = gets.to_i r = gets.to_i nCr = combination.(n) puts nCr.(r)
0 Comments