[#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:5673] Re: local variables (nested, in-block, parameters, etc.)

From: Hugh Sasse Staff Elec Eng <hgs@...>
Date: 2000-10-18 17:06:25 UTC
List: ruby-talk #5673
On Thu, 19 Oct 2000, ts wrote:

> >>>>> "H" == Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
> 
> H> But the manual page states they are the same: "for is the syntax sugar
> H> for:" etc.  That was my point.  If they are not equivalent, but they are
> H> so near that the author of the manual could confuse the two,
>                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>  I don't think that the author of the manual can confuse the two :-)

Then 'for' simply isn't syntactic sugar for the braces or for the
do...end.   It does a similar job, but does it differently.  The author
may not be confused, but confuses the issue for the reader by putting
things like this.  No disrespect intended: creating clear documentation
is non-trivial!

> 
> H> if 'do' and 'end' do not introduce new scope, whereas the braces do. But
> H> actually trying this:
> 
>  'do' and 'end' introduce new scope, except when used with 'while', 
>  'for', ... :-)

Oh!  These are treated differently because the do word is optional
there.  OK. I think I've got there.  I better retract that patch then!
I would suggest a new patch replacing my earlier one:

--- syntax.html.orig    Thu Jun 22 16:18:36 2000
+++ syntax.html Wed Oct 18 17:59:54 2000
@@ -1555,8 +1555,14 @@
 </P>
 
 <PRE>
-       (expr).each `{' `|' lhs..`|' expr.. `}'
+       lhs = nil
+       (expr).each `do' `|' lhs..`|' expr.. `end'
 </PRE>
+<P>
+but without creating local scope for <CODE><VAR>expr</VAR></CODE>.
+Note: <CODE><VAR>lhs</VAR></CODE> will be defined when the
+<CODE>for</CODE> loop finishes.
+</P>
 
 <H4><A NAME="yield"><code>yield</code></A></H4>
 

> 
> H> which seems to be the same as braces to me.  Hmmm.  I thought I
> H> understood the difference between braces and do...end.
> 
>  There is a difference between 1.4 and 1.6
> 
> pigeon% cat b.rb
> #!/usr/bin/ruby
> def b
>    yield 14
> end
> def foobar(a, b)
>    p "#{a} -- #{b}"
> end
> a = 12
> foobar a, b {|i| i}
> foobar a, b do |i| 
>    i
> end
> pigeon% 
> 
> pigeon% b.rb
> "12 -- 14"
> "12 -- 14"
> pigeon%
>  
> pigeon% ./ruby b.rb
> "12 -- 14"
> b.rb:3:in `b': yield called out of iterator (LocalJumpError)
>         from b.rb:10
> pigeon%
>  
> pigeon% ./ruby -v
> ruby 1.4.6 (2000-08-16) [i686-linux]
> pigeon% 
>

So that rule about precedence has gone in 1.6?
 
> 
> Guy Decoux
> 
> 
	Hugh
	hgs@dmu.ac.uk


In This Thread