From: Dave Thomas Date: 2000-02-10T09:26:17-06:00 Subject: [ruby-talk:01298] Re: Draft of the updated Ruby FAQ Clemens Hintze writes: > > 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. > > Good point for 'Proc.new'! But what is with 'Proc.call'? This was my > initial reason to propose the '#' syntax! The FAQ may not be consistent here, but the approach we've taken other places is to document these as (say) aProc.call, using an object instance to proxy for the receiver. There are a couple of different scenarios, though: 1. You're trying to show the calling sequence. Here you really have no choice. You can't use '#', because you must have runnable code (after all, you're trying to show the syntax). So, we'd show aProc.call( args... ) -> anObject normally using a typographic convention to distinguish the fixed thing (call in this instance) from the placeholders. 2. You're making a nominative reference (Proc.[] is a synonym for Proc.call). Here you _do_ have a choice, and I can see some merit in your notation (Proc#[] is a synonym for Proc#call). As I said previously, the jury is still out, but I think we're leaning towards deciding that the '#' notation is more confusing, and is distracting to the reader. However, we do have a real interest in what people think about this. Does anyone have any opinions? Dave -- Thomas Consulting. Innovative and successful developments with Unix, Java, C, and C++. Now in bookstores: The Pragmatic Programmer. www.pragmaticprogrammer.com/ppbook/