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

From: "Conrad Schneiker/Austin/Contr/IBM" <schneik@...>
Date: 2000-10-18 06:20:56 UTC
List: ruby-talk #5659
Guy Decoux wrote:

# >>>>> "C" == Conrad Schneiker/Austin/Contr/IBM <schneik@us.ibm.com> 
writes:
# 
# C> (1..10).each{|i| (x = i; break) if (i == 4)}
# 
#  It depend how you interpret |i|
# 
#  Apparently many people (like me) see |i| as arguments, when ruby seems 
see
#  only a multi-assignement.
# 
#  ruby is consistent in the sense that it give the same result for this
#  example :
# 
#   a = x = 0
#   [[1, 2]].each do |a, b|
#       x, y = a, b
#   end
# 
#  a and x are local variables
#  b and y are dynamic variables.

Well, your argument viewpoint and parallel assignment viewpoint are 
certainly good points.

However, I am still not too happy with arguments being coupled to 2 
different sources, as it were, which somehow seems contrary to the really 
nice "wrapping" nature of iterators, as it were. It still seems a little 
too Perl-ish in terms of context-dependence. Plus the initial references 
to a and x might not always be so near to the iterator, as they were in 
your example. 

Speaking of arguments, maybe |(a), b| could be used (with reference to 
your example) to mean that a's scope transcends the iterator, while b is 
strictly iterator-local. I think this would be cleanest way for the most 
common cases (although if backward compatibility were the top concern, the 
convention would be the other way around).

==============================================================

Incidentally, on an unrelated topic, I discovered that if I put:

  p(a, b)
  p(x, y)

after your code and run it, I get

  block2.rb:5: undefined local variable or method `b' for 
#<Object:0x20063370> (NameError)

Is there a good reason why this should really die with a NameError rather 
than just telling you that the argument is undefined and going on?

Conrad Schneiker
(This note is unofficial and subject to improvement without notice.)

In This Thread

Prev Next