User Tools

Site Tools


at:tutorial:objects

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
at:tutorial:objects [2007/07/18 18:09] jorgeat: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.add(closure(v));
     };     };
 +    c;
   };   };
 }; };
 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 173: Line 175:
   def each: clo {   def each: clo {
     1.to: elements.length + 1 do: { |i|     1.to: elements.length + 1 do: { |i|
-      elements[i] := clo(elements[i]);+      clo(elements[i]);
     };     };
   };   };
Line 186: Line 188:
 > def c := Array.collect: { |v| v+1 } > def c := Array.collect: { |v| v+1 }
 >> <object:14179973> >> <object:14179973>
-> c.each: { |v| system.println(v)} +> c.each: { |v| system.print(v)} 
-+234
-+
-4+
 >>nil >>nil
 </code> </code>
at/tutorial/objects.txt · Last modified: 2013/05/17 20:23 by tvcutsem