[#1026] Is this a bug? — Dave Thomas <Dave@...>
18 messages
2000/01/03
[#1053] rand() / drand48() — ts <decoux@...>
11 messages
2000/01/05
[#1055] Re: rand() / drand48()
— matz@... (Yukihiro Matsumoto)
2000/01/05
[#1061] Re: rand() / drand48()
— gotoken@... (GOTO Kentaro)
2000/01/07
Hi,
[#1067] Here docs not skipping leading spaces — Dave Thomas <Dave@...>
5 messages
2000/01/08
[#1083] YADQ (Yet Another Dumb Question) — Dave Thomas <Dave@...>
12 messages
2000/01/10
[#1084] Infinite loop — Dave Thomas <Dave@...>
17 messages
2000/01/11
[#1104] The value of while... — Dave Thomas <Dave@...>
24 messages
2000/01/11
[#1114] Re: The value of while...
— Dave Thomas <Dave@...>
2000/01/12
matz@netlab.co.jp (Yukihiro Matsumoto) writes:
[#1128] Re: The value of while... — David Suarez de Lis <excalibor@...>
Hi all,
1 message
2000/01/12
[#1133] Re: Class variables... — David Suarez de Lis <excalibor@...>
Hi there,
2 messages
2000/01/12
[#1158] Is this expected behavior? — Dave Thomas <Dave@...>
6 messages
2000/01/21
[#1172] Re: Possible bug in ruby-man-1.4 — Huayin Wang <wang@...>
> |Well, I guess it comes down to what you mean by an integer
10 messages
2000/01/24
[#1177] Re: Possible bug in ruby-man-1.4
— Dave Thomas <Dave@...>
2000/01/25
matz@netlab.co.jp (Yukihiro Matsumoto) writes:
[#1188] Enumerable and index — Dave Thomas <Dave@...>
5 messages
2000/01/27
[#1193] Semantics of chomp/chop — Dave Thomas <Dave@...>
7 messages
2000/01/28
[#1197] Question about 'open' — Dave Thomas <Dave@...>
8 messages
2000/01/30
[ruby-talk:01146] Re: The value of while...
From:
Dave Thomas <Dave@...>
Date:
2000-01-15 16:57:30 UTC
List:
ruby-talk #1146
matz@netlab.co.jp (Yukihiro Matsumoto) writes:
> |I'd suggest that return's value is the value you're returning, and that
> |break should be altered to accept an argument, which becomes its value
> |(see below).
>
> It's bit weird for me. Because I feel returning value cannot be the
> value of the `return' expression itself. See this.
>
> print return(22), "\n"
Contrast with:
def fred
return 22
end
print fred(), "\n"
But, says the naive neophyte, where'd the '22' come from. A method
returns the value of the last expression it evaluates. And the value
of 'return' is a void expression...
> |The value of 'while' and 'until' could be the value of the last
> |expression executed (just like with methods). If 'break' returns a
> |value, then that's returned.
>
> This too. `break' can have some value to pass, but it's something but
> the return value of `break'.
class Fixnum
def prime?
,,,
end
end
# Find the first prime number in 'range', or false if there is none:
first = ( for i in range
break i if i.prime?
end
)
if first
..
end
(Possibly a bad example, as 'for' currently returns the range)
To me it it comes down to the fact that if everything is an
expression, then what's the most meaningful value of that expression.
> |I'm not sure I see any real reason to do this, but for normal instance
> |methods there an analogy with a block and a Proc object. 'def'
> |could return an unbound method, which you have to provide a binding to
> |before evaluating. That binding would then produce a Method, in the
> |same wy that binding a bock produces a Proc. However, that would mean
> |a new method in Object and a new internal type, and I'm not sure that
> |its worth it.
>
> I think it's a too big change.
Agreed!
Please don't think I'm pushing all this - it's just an interesting
discussion, (with some possibly beneficial side effects)
Dave