Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 516585
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T07:44:47+00:00 2026-05-13T07:44:47+00:00

I just wondered whether there is any good reason for or even an advantage

  • 0

I just wondered whether there is any good reason for or even an advantage in having to invoke Procs using proc.call(args) in Ruby, which makes higher-order function syntax much more verbose and less intuitive.

Why not just proc(args)? Why draw a distinction between functions, lambdas and blocks? Basically, it’s all the same thing so why this confusing syntax? Or is there any point for it I don’t realize?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T07:44:48+00:00Added an answer on May 13, 2026 at 7:44 am

    You need some way to distinguish between calling the Proc and passing it around.

    In Python and ECMAScript, it’s simple: with parentheses it’s a call, without it’s not. In Ruby, leaving off the parentheses is also a call, therefore, there must be some other way to distinguish.

    In Ruby 1.8, Proc#call and its alias Proc#[] serve that distinction. As of Ruby 1.9, obj.(arg) is syntactic sugar for obj.call(arg) and Proc#() is also an alias for Proc#call.

    So, you can call a Proc like this:

    • foo.call(1, 2, 3)
    • foo[1, 2, 3]
    • foo.(1, 2, 3)

    And you can even also define () for your own classes.

    BTW: the same problem is also why you have to use the method method to get a hold of a method object.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a working selector but I just wondered whether there was another way
I just wondered if there are any libraries in Java or any other language
After reading this question I just wondered whether it would be a good idea
Just wondered if any LINQ guru might be able to shed light on how
Just wondered if there was a secret to do something like Database.Security.Users like AdventureWorks
I just wondered whether it's possible to match against the same values for multiple
I just wondered whether (with some serious paranoia and under certain circumstances) the use
Just wondered if the above is true or whether reference assignments are split into
I just wondered, why most Delphi examples use FillChar() to initialize records. type TFoo
I just wondered if anybody can point me in the right direction: I'm looking

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.