[#5218] Ruby Book Eng tl, ch1 question — Jon Babcock <jon@...>

13 messages 2000/10/02

[#5404] Object.foo, setters and so on — "Hal E. Fulton" <hal9000@...>

OK, here is what I think I know.

14 messages 2000/10/11

[#5425] Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...>

18 messages 2000/10/11
[#5427] RE: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — OZAWA -Crouton- Sakuro <crouton@...> 2000/10/11

At Thu, 12 Oct 2000 03:49:46 +0900,

[#5429] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...> 2000/10/11

Thanks for the input.

[#5432] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Yasushi Shoji <yashi@...> 2000/10/11

At Thu, 12 Oct 2000 04:53:41 +0900,

[#5516] Re: Some newbye question — ts <decoux@...>

>>>>> "D" == Davide Marchignoli <marchign@di.unipi.it> writes:

80 messages 2000/10/13
[#5531] Re: Some newbye question — matz@... (Yukihiro Matsumoto) 2000/10/14

Hi,

[#5544] Re: Some newbye question — Davide Marchignoli <marchign@...> 2000/10/15

On Sat, 14 Oct 2000, Yukihiro Matsumoto wrote:

[#5576] Re: local variables (nested, in-block, parameters, etc.) — Dave Thomas <Dave@...> 2000/10/16

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#5617] Re: local variables (nested, in-block, parameters, etc.) — "Brian F. Feldman" <green@...> 2000/10/16

Dave Thomas <Dave@thomases.com> wrote:

[#5705] Dynamic languages, SWOT ? — Hugh Sasse Staff Elec Eng <hgs@...>

There has been discussion on this list/group from time to time about

16 messages 2000/10/20
[#5712] Re: Dynamic languages, SWOT ? — Charles Hixson <charleshixsn@...> 2000/10/20

Hugh Sasse Staff Elec Eng wrote:

[#5882] [RFC] Towards a new synchronisation primitive — hipster <hipster@...4all.nl>

Hello fellow rubyists,

21 messages 2000/10/26

[ruby-talk:5668] Re: local variables (nested, in-block, parameters, etc.)

From: Hugh Sasse Staff Elec Eng <hgs@...>
Date: 2000-10-18 16:20:23 UTC
List: ruby-talk #5668
On Thu, 19 Oct 2000, ts wrote:

> >>>>> "H" == Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
> 
> H>         for lhs... in expr [do]
> H>           expr..
> H>         end
> [...]
> H>         (expr).each `{' `|' lhs..`|' expr.. `}'
> 
> H> Which rather suggests new scope *is* created...  
> 
> H> I would advocate the simplest (in terms of number of different cases)
> H> rules of scope possible, and that block parameters should have scope
> H> for that block only.  Principle of least to remember? :-)
> 
>  If you look in ruby-man you'll see that 'for' is defined in 'Ruby syntax'
>  like `while'.

The above text I quoted was from ruby-man-1.4/syntax.html#for
> 
>  You don't have a dynamic scope for while, this is the same for 'for'
> 
>  'each' is a method which "yield" a block.
> 
But the manual page states they are the same: "for is the syntax sugar
for:" etc.  That was my point.  If they are not equivalent, but they are
so near that the author of the manual could confuse the two, then it is
not as clear as one would like.  Given that a little further up that 
page it says:

 
   Braces introduce the nested local scopes, that is newly declared local
   variables in the braces are
   valid only in the blocks. For example: 

           foobar {
             i = 20                # local variable `i' declared in the
block.
             ...
           }
           print defined? i        # `i' is not defined here.     
           foobar a, b { .. }      # it is not valid outside of the block


then I would suggest the following patch to clear matters up:

--- syntax.html.orig    Thu Jun 22 16:18:36 2000
+++ syntax.html Wed Oct 18 17:00:04 2000
@@ -1555,7 +1555,7 @@
 </P>
 
 <PRE>
-       (expr).each `{' `|' lhs..`|' expr.. `}'
+       (expr).each `do' `|' lhs..`|' expr.. `end'
 </PRE>
 
 <H4><A NAME="yield"><code>yield</code></A></H4>

if 'do' and 'end' do not introduce new scope, whereas the braces do. But
actually trying this:

irb(main):001:0> [1..4].each do
irb(main):002:1* i = 20
irb(main):003:1> end
[1..4]
irb(main):004:0> print defined? i
nilnil
irb(main):005:0> 

which seems to be the same as braces to me.  Hmmm.  I thought I
understood the difference between braces and do...end.
 
> Guy Decoux
> 
	Hugh
	hgs@dmu.ac.uk


In This Thread

Prev Next