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

From: matz@... (Yukihiro Matsumoto)
Date: 2000-10-16 17:14:02 UTC
List: ruby-talk #5595
Hi,

In message "[ruby-talk:5590] Re: local variables (nested, in-block, parameters, etc.)"
    on 00/10/17, Davide Marchignoli <marchign@di.unipi.it> writes:

|I propose to back up to the solution proposed in [ruby-talk:5543], i.e.
|treat all the parameters as fresh variables.
|
|The main argument against this, seems to be incompatibility, IMHO this
|should not be a real problem, for the following reasons:
|
|- We are not talking about Fortran. Ruby is a relatively new language and,
|a dynamic one. New features, library, ecc... are introduced day by day. If
|you think that the new treatement of blocks is more appropriate no price
|is high enough to hinder the new development.

Well, Ruby is far younger than FORTRAN, and you may have found it
recently.  But it have been there for at least 5 years (for me, 7
years).  There are probably tens of thousands of Ruby programs
already.  I don't deny introducing incompatibility.  In fact, I did
many times.  But we should be careful to do so.

|- The "feature" we are talking about (the previous behaviour of block
|parameters) is strange enough to be not extensively used. And so I think
|it unlikely occurs in real code. I would like to see an example in which
|using this feature one would relly gain something (clearness,
|expressivness, ...).

When you use blocks as lambda/closure, yes.  But not that strange when
you use blocks for iteration.  That's the problem.

|- We can check syntactically if this occurs in old code. Using the ruby
|parser code, we could (easily?) write a tool to detect blocks in which
|parameters are already bound in the context. I think this could be
|also helpful to detect potential bugs due to wrong choices of names for
|block parameters.

Agreed, once consensus be made up that block parameter should be block
local, even for iteration.  From this point, using <> for block
parameter used for closure arguments is bit more acceptable for me.

|- If you think that having also the old semantics is a must, it would be a
|better choice (IMHO) introducing a compatibility switch in ruby
|interpreter and implementing by default the new semantics.

No, global switch is a bad idea.  It makes serious (even unacceptable)
gap between new and old code.  You can't mix them.  Let us look for
other workaround.

							matz.

In This Thread