[#1026] Is this a bug? — Dave Thomas <Dave@...>

18 messages 2000/01/03

[#1084] Infinite loop — Dave Thomas <Dave@...>

17 messages 2000/01/11

[#1104] The value of while... — Dave Thomas <Dave@...>

24 messages 2000/01/11

[ruby-talk:01136] Re: The value of while...

From: matz@... (Yukihiro Matsumoto)
Date: 2000-01-13 16:55:09 UTC
List: ruby-talk #1136
Hi,

In message "[ruby-talk:01131] Re: The value of while..."
    on 00/01/12, Dave Thomas <Dave@thomases.com> writes:

|matz@netlab.co.jp (Yukihiro Matsumoto) writes:
|
|> Telling use of void value expression has benefit, I think.  But there
|> may be better message for the error.
|
|My point was simply that they don't _have_ to be void -- there may be
|value in them returning a value.

I get it now.  At present, 'void expressions' are ones introduced by
the reserved words listed below:

  return
  break
  next
  redo
  retry
  while
  until
  class
  module
  def

Among them, expressions to switch control flow (return, break, next,
redo, retry) cannot have value anyway.

I can't think of proper value for `while' and `until', unless `break
with value' is introduced.  pending.

`class' and `module' can return their newly defined structure.  It may
be good idea, iff it is consistent with the return value of `def'.

`def' is more difficult, because of implementation reason, we cannot
have so-called unbound method object in Ruby.  A Method object is a
method bound to the certain receiver.  It had been discussed in
Japanese speaking list, but we couldn't find any good idea.

In conclusion, if we can find proper return value for `def', I'll
change expressions `class', `module', and 'def' to return values.
Otherwise remain as they are.

I have no idea about `while' and `until' to return value, yet.

							matz.

In This Thread