lib/ImmutableStack.rb in maroon-0.6.5 vs lib/ImmutableStack.rb in maroon-0.7.0

- old
+ new

@@ -1,38 +1,34 @@ class ImmutableStack - -def pop() + def pop() [@head, @tail] - end - -def push(element) + end + + def push(element) ImmutableStack.new(element, self) - end - -def self.empty() + end + + def self.empty() @@empty ||= self.new(nil, nil) - end - -def each() + end + + def each() yield(head) -t = tail -while t.!=(ImmutableStack.empty) do - h, t = t.pop - yield(h) -end + t = tail + while t.!=(ImmutableStack.empty) do + h, t = t.pop + yield(h) + end + end - end - -def initialize(h,t) + def initialize(h, t) @head = h -@tail = t -self.freeze + @tail = t + self.freeze + end - end + private + attr_reader :head + attr_reader :tail - private -attr_reader :head - attr_reader :tail - - - - end + +end \ No newline at end of file