Clemens Hintze <clemens.hintze / alcatel.de> writes: > 2.11 How do I pass arguments to a block? > The formal parameters of a block appear between vertical bars at > the start of the block: > > proc { |a, b| a <=> b } > > Here you have not only shown a block, but a closure! I think you > should delete 'proc' because a newbie could feel that there has to be > a 'proc' before every block. I tried hard only to show valid Ruby syntax in the code fragments. In fact, the source of the FAQ is actually pre-processed by a Ruby script, and all the output and error messages you see are generated by Ruby. A bare block is not valid syntax, so I put the minimum needed around it to make it compilable. > Here you probably should use matz' way of method naming. As you have > written it, it could also mean call of singleton method 'call' of > class 'Proc'. Matz has often written like Proc#call. I found this > construct more apropiate. IMHO, there is a difference between > 'Proc.new' and 'Proc#new'. First means method call, second means name > of method. What do you think? We thought long and hard about this (and the jury's still out). Although there _is_ a distinction between A#s and A.s, is it significant to the end user? The normal convention is to show by example, so we felt that Proc.new was better--it shows both the name _and_ how to call it. IF we put Proc#new, we were worried people would actually write it that way, and then bitch when they got syntax errors. Group--what's you feeling about this? > You could mention a hint to copy that script to the site_ruby > directory of the current installation. After doing so one easily could > get a command line by typing Good point. Thanks again for all your useful input. Dave -- Thomas Consulting. Innovative and successful developments with Unix, Java, C, and C++. Now in bookstores: The Pragmatic Programmer. www.pragmaticprogrammer.com/ppbook/