Why does Ruby require .call for Proc invocation? <p>I just wondered whether there is any good reason for or even an advantage in having to invoke <code>Proc</code>s using <code>proc.call(args)</code> in Ruby, which makes higher-order function syntax much more verbose and less intuitive.</p> <p>Why not just <code>proc(args)</code>? 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?</p>