📖 Scenario: Imagine you are building a simple calculator that can perform different operations. You want to use Ruby's Proc objects to store these operations and call them when needed.
🎯 Goal: Create a Proc that adds two numbers, store it in a variable, and then call it to get the result.
📋 What You'll Learn
Create a Proc that takes two numbers and returns their sum.
Store the Proc in a variable called add_proc.
Call the add_proc with the numbers 5 and 7.
Print the result of the Proc call.
💡 Why This Matters
🌍 Real World
Procs let you store blocks of code to reuse later, like saving a recipe to cook anytime.
💼 Career
Understanding Procs helps in Ruby programming for flexible and reusable code, common in web development and automation.
Progress0 / 4 steps
1
Create a Proc that adds two numbers
Create a Proc called add_proc that takes two parameters a and b and returns their sum.
Ruby
Hint
Use Proc.new { |a, b| a + b } to create the Proc.
2
Call the Proc with two numbers
Call the add_proc with the numbers 5 and 7 and store the result in a variable called result.
Ruby
Hint
Use add_proc.call(5, 7) to call the Proc.
3
Print the result
Print the value of the variable result using puts.
Ruby
Hint
Use puts result to print the sum.
4
Use the Proc with different numbers
Call the add_proc with the numbers 10 and 15 and print the result directly using puts.
Ruby
Hint
Use puts add_proc.call(10, 15) to print the new sum.
Practice
(1/5)
1. What does a Proc in Ruby do?
easy
A. Stores a block of code to run later
B. Creates a new variable
C. Defines a class
D. Starts a loop
Solution
Step 1: Understand what a Proc is and match description
A Proc is a way to save some code to run later, like a recipe you keep for cooking. Only Stores a block of code to run later describes storing code to run later, which matches what a Proc does.
Final Answer:
Stores a block of code to run later -> Option A
Quick Check:
Proc = stored code block [OK]
Hint: Proc saves code to run later, like a saved recipe [OK]
Common Mistakes:
Thinking Proc creates variables
Confusing Proc with class definition
Assuming Proc starts loops automatically
2. Which of the following is the correct way to create a Proc in Ruby?
easy
A. my_proc = Proc.new { |x| x * 2 }
B. my_proc = new Proc { |x| x * 2 }
C. my_proc = Proc.create { |x| x * 2 }
D. my_proc = Proc.call { |x| x * 2 }
Solution
Step 1: Recall Proc creation syntax and check options
In Ruby, you create a Proc using Proc.new or proc with a block. Only my_proc = Proc.new { |x| x * 2 } uses the correct syntax Proc.new { |x| x * 2 }. Others use invalid methods like new Proc, Proc.create, or Proc.call.
Final Answer:
my_proc = Proc.new { |x| x * 2 } -> Option A
Quick Check:
Proc.new + block = correct Proc creation [OK]
Hint: Use Proc.new or proc with a block to create a Proc [OK]
Common Mistakes:
Using 'new Proc' instead of 'Proc.new'
Trying to call Proc.create or Proc.call to create
Missing the block braces {}
3. What is the output of this Ruby code?
my_proc = proc { |x| x + 3 }
puts my_proc.call(4)
medium
A. 4
B. Error
C. 3
D. 7
Solution
Step 1: Trace the Proc definition and execution
The Proc adds 3 to the input number: x + 3. Calling my_proc.call(4) computes 4 + 3 = 7.
Final Answer:
7 -> Option D
Quick Check:
4 + 3 = 7 [OK]
Hint: Proc.call runs code with given argument [OK]