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

From: Davide Marchignoli <marchign@...>
Date: 2000-10-16 15:59:46 UTC
List: ruby-talk #5590
On Mon, 16 Oct 2000, ts wrote:

>  Perhaps (and certainly :-)) I'm stupid  but why it make ruby more
>  complex ?
> 

I think the problem is not what ruby is missing but rather what it gives
(in analogy with the lack of goto in high level languages).

IMHO the solutions proposed up to now are not completely satisfactory
since they introduce (in some form) a new construct with the standard
semantics but leaves a construct with "unclear" semantics.

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.

- 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, ...).

- 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.

- We can (easily?) write a code translator from old semantics to new
semantics. If I understood correctly the argument passing in ruby, the
following equivalence shoul hold:

	{|a| p} equivalent to {|x| a = x ; p ; x = a}

where p is a piece of ruby code and x is a fresh variable (not occurring
in p and in the scope in which the block is defined).

- 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.


Sorry, the message is long also this time.

Bye,
					Davide



In This Thread