Clemens Hintze <clemens.hintze / alcatel.de> writes:

> Your explaination is ok, but, IMHO, I feel we could describe it more
> explicite. 
> 
> We should explain the user, that the compiler has to decide on compile
> time, whether a mentioned symbol means variable access or method call
> (performance and architectural reasons; variable access is *very*
> difficult from method invocation).

Yes, I like this.

> 3.3 How is a block used in an iterator?
> 
> Nice, but could you explicite explain, that blocks are not consumed by
> 'Proc.new', 'lambda' and 'proc'? So the last example would become more
> clear. If not, I could ask myself with what block does 'proc' operate
> with? Because the block was already used by 'Proc.new'!

I _could_, but why is this different to saying that they're not
consumed by yield:

   def iter
     yield 1
     yield 2
   end

is really no different to

   def iter
     proc.call
     proc.call
   end

Or am I missing something here?

> 4.1 What does :var mean?
> 
> Again, I cannot see the reason why it is important for the user to
> know, that the ':var' form will create local symbols.

OK, lets agree to differ on this. It seems to me that some information 
is better than none. When I was leaning Ruby, I remember thinking that 
this was interesting.

> 4.2 How can I access the value of a symbol?
> 
> If you ask this question, would it make sense also to ask: How can I
> access the method behind a symbol?

It's there now!


New version's on the web.



Thanks again.


Dave


-- 
Thomas Consulting.
Innovative and successful developments with Unix, Java, C, and C++. 

Now in bookstores:
 The Pragmatic Programmer.  www.pragmaticprogrammer.com/ppbook/