[#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:5498] Re: Some newbye question

From: Aleksi Niemel<aleksi.niemela@...>
Date: 2000-10-13 06:59:17 UTC
List: ruby-talk #5498
matz replies to Dave's example:
> |   a = 1
> |   proc { |a| a = 99 } .call
> |   a		# => 99
>   (a) I don't like variable overriding, especially in declaration-less
>       language like Ruby.

It seems, matz, that you valuate variable non-overridingness more than
symmetry in parameter handling, if I understood correctly?

So here's my current understanding what happens at above example:

1  var a is created
2  a is set to refer to the object 1
3  function proc is called with an associated block
   block won't be executed yet
4    variables in block's parameter list are created *if*
     they do not exists in outer binding, that means 
     |a| is not created because it exists, as it was 
     created at 2
5    a is set to refer to the object 99
6  the proc's returning Proc object's method 'call' is
   executed, which in turn executes the block passing
   no arguments to it

Now I have a questions: why not bind the block's variables only at block's
body? (not in the parameter list only)

The reason why I'm asking this, even though you already answered to the
question from one point of view, is that I believe there are several aspects
here to consider - which you probably have already considered.

Not binding at parameter list would be much clearer to me as the calling a
method and a block wouldn't be that much different. For me, it's easiest to
think in Ruby, when the differences between methods and blocks are as few as
possible, the major difference being the binding.

I think it's really weird to think one's passing a parameter when actually
the parameter has been already bound. 

Thanks for enlightening comments.

	- Aleksi

In This Thread

Prev Next