Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Create your online store today with Shopify

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Disclosure: My content contains affiliate links.

43,406 questions

56,397 answers

573 users

How to use higher-order functions in Ruby

2 Answers

0 votes
# A higher‑order function is a function that does at least one of the following:
# 1. Takes another function as an argument
# 2. Returns a function as its result
# If it does either one, it qualifies.

# Higher-order function: takes a function as an argument
def apply_twice(fn, x)
  fn.call(fn.call(x))
end

# A simple function to pass in
def add3(n)
  n + 3
end

# Use the higher-order function
result = apply_twice(method(:add3), 5) # 5 + 3 = 8 + 3 = 11

puts result


=begin
run:

11

=end

 



answered Jun 4 by avibootz
0 votes
# A higher‑order function is a function that does at least one of the following:
# 1. Takes another function as an argument
# 2. Returns a function as its result
# If it does either one, it qualifies.

# makeMultiplier is a higher‑order function because it RETURNS another function
def make_multiplier(n)

  # This inner function forms a closure and remembers the value of n
  return ->(x) { x * n } # Uses the captured value n
end

# double_val is now a function created by makeMultiplier(2)
# It remembers n = 2 through closure
double_val = make_multiplier(2)

# Calling double_val(10) multiplies 10 by the captured n (which is 2)
puts double_val.call(10)



=begin
run:

20

=end

 



answered Jun 4 by avibootz
...