From: Conrad Schneiker Date: 2000-02-12T01:39:48-06:00 Subject: [ruby-talk:01310] Re: Draft of the updated Ruby FAQ From: Dave Thomas > Clemens Hintze 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. You both raise good points (although I think the 2nd should take precedence over the 1st). Could the extra "syntactically valid infrastructure" as it were be indicated with a lighter or italic font? > > 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. Again, you both raise good points (and again, I think the 2nd should take precedence over the 1st). > Group--what's you feeling about this? Either way, how about a FAQ entry for this issue in the "1.Introduction" section of the FAQ? (And how about renaming "1.General questions" to "1.Introduction", since most of the "general questions" are actually pretty specific?). Now on to new topics. I think that "1.9 Which is correct, Ruby or ruby?" needs to additionally include and describe a third name, "Ruby!", since Ruby is our method for changing the programming world for the better, right? As with Gnu and Perl, Ruby needs (at least 1) good acronym interpretation. How about Ruby! recursively means "Ruby ups brain yields!" -- after all, Matz said a while back that we are (meaning he is :-) supposed to be smarter about language design than Perl. Incidentally, this interpretation has an interesting, appropriate, and catchy sort of "literalist Japanese translation" sound to it (not to mention multiple positive subsidiary interpretations). These considerations further suggest applying the Perl motto to itself in the spirit of the third Perl virtue of hubris to yield the proposed official Ruby motto "There's a better way to do it!" (TABWTDI) complements another slogan that describes what I was previously searching for and thus that I'm very fond of -- "a better Perl than Perl". Speaking of (self-fulfilling marketing and promotional) hubris, let's also add, "and is rumored by some as slated to become the 'Linux of languages' ". Finally, taking TABWTDI to humorous extremes, we can outdo what we may retrospectively designate as the Perl/Python/etc. smile :-) with the Ruby laugh 8-)) which, when mentally rotated right side up, is "seen" to be an "infinity sign" (visual pun intended), indicating the mathematician's "far-sighted" appraisal of Ruby's enormous technology-leveraging potential. Conrad