at:tutorial:objects
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
at:tutorial:objects [2007/07/18 18:11] – jorge | at:tutorial:objects [2007/07/19 07:59] – * tvcutsem | ||
---|---|---|---|
Line 159: | Line 159: | ||
def Enumerable := object: { | def Enumerable := object: { | ||
def collect: closure { | def collect: closure { | ||
- | def c := self.new(); | + | def c := self.new([]); |
self.each: { |v| | self.each: { |v| | ||
- | closure(v); | + | |
}; | }; | ||
c; | c; | ||
Line 168: | Line 168: | ||
def Array := object: { | def Array := object: { | ||
def elements := []; | def elements := []; | ||
+ | def init(a) { elements := a; }; | ||
def add(v) { elements := elements + [v]; self }; | def add(v) { elements := elements + [v]; self }; | ||
def collect: closure { | def collect: closure { | ||
Line 174: | Line 175: | ||
def each: clo { | def each: clo { | ||
1.to: elements.length + 1 do: { |i| | 1.to: elements.length + 1 do: { |i| | ||
- | | + | clo(elements[i]); |
}; | }; | ||
}; | }; | ||
Line 187: | Line 188: | ||
> def c := Array.collect: | > def c := Array.collect: | ||
>> < | >> < | ||
- | > c.each: { |v| system.println(v)} | + | > c.each: { |v| system.print(v)} |
- | 2 | + | 234 |
- | 3 | + | |
- | 4 | + | |
>>nil | >>nil | ||
</ | </ |
at/tutorial/objects.txt · Last modified: 2013/05/17 20:23 by tvcutsem