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