[#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:01192] Re: Enumerable and index
From:
Dave Thomas <Dave@...>
Date:
2000-01-28 04:06:12 UTC
List:
ruby-talk #1192
gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) writes: > In message "[ruby-talk:01190] Re: Enumerable and index" > on 00/01/27, Dave Thomas <Dave@thomases.com> writes: > >I guess this is the difference between Iterable and > >Enumerable. Iterable simply implies a .each method, while Enumerable > >means that .each stops and is repeatable. So, IO would be Iterable, > >and Array would be Enumerable. I guess that Enumerable < Iterable. > > > >(And no, Iterable is most definitely _not_ a word ;-) > > :-) > > >From the other point of veiw, most methods of Enumerable requires of > finiteness while each can work for possibly infinite stream. In the > term of computer science, enumerable is referred as existence of a map > from integer to object. In this sense, I guess IO is proper > Enumerable. On the other hand, classes else IO is Finite. I guess > Finite < Enumerable. But Finite is not "-able" and most class is > finite whereas they don't have .each. If I understand your argument, then, enumerable _should_ have index and size replaced, as Enumerable maps to integers, and therefore there'll always be a value for size etc. On the other hand, if index is removed, then shouldn't max, min, sort and the like be removed too, as they also assume a finite input stream? Perhaps the real different is between Classes where .each is a pure function (like array) and one where .each has side effects (such as IO). You can call Array#each as many times as you like, but IO#each just once (in the normal case). Maybe there should be two interfaces: .each and .each!. Standard Enumerable uses .each, and therefore can't work with IO. MutatingEnumerable uses .each! (which maps to .each if otherwise undefined), allowing it to work with IO. Regards Dave