Skip to content
Programmingoneonone
Programmingoneonone

Learn everything about programming

  • Home
  • CS Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programmingoneonone
Programmingoneonone

Learn everything about programming

HackerRank Blocks problem solution in ruby

YASH PAL, 31 July 2024

In this HackerRank Blocks problem solution in ruby programming, Higher-order functions are one of the key components of functional programming. A higher-order function is a tool that takes other functions as parameters or returns them as a result.

Blocks are nameless methods that can be passed to another method as a parameter.

Passing a block to a method is a great way of data abstraction.

Blocks can either be defined with a keyword do … end or curly braces { … }.

Example:

a). Passing a block to a method that takes no parameter

CODE

def call_block

    puts “Start of method.”

    yield

    puts “End of method.”

end 

call_block do 

    puts “I am inside call_block method.”

end

OUTPUT

Start of method.

I am inside call_block method.

End of method.

In this example, a block is passed to the call_block method.

To invoke this block inside the method, we used a keyword, yield.

Calling yield will execute the code within the block that is provided to the method.

b). Passing a block to a method that takes one or more parameters.

CODE

def calculate(a,b)

    yield(a, b)

end

puts calculate(15, 10) {|a, b| a – b}   

OUTPUT

5

In this example, we have defined a method calculate that takes two parameters a and b.

The yield statement invokes the block with parameters a and b, and executes it.

Task

You are given a partially complete code. Your task is to fill in the blanks (_______).

The factorial method computes: n! { n x n – 1 x … 2 x 1 }.

HackerRank Blocks problem solution in ruby programming

Problem solution.

def factorial
    yield
end

n = gets.to_i
factorial do 
    puts "#{(1..n).inject(:*) || 1}"
end

Second solution.

def factorial(n)
    x = (1..n).inject(:*) || 1
    yield(x)
end

n = gets.to_i
factorial(n) do |x|
    puts x
end

coding problems solutions Ruby Solutions

Post navigation

Previous post
Next post

Pages

  • About US
  • Contact US
  • Privacy Policy

Follow US

  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes