Sha256: e123c850caed364df9e68771295930eb33a7c995001adb1565e749c7934ac82d

Contents?: true

Size: 402 Bytes

Versions: 1

Compression:

Stored size: 402 Bytes

Contents

class ImmutableStack
      def pop() [@head, @tail] end
 def push(element) ImmutableStack.new(element, self) end
 def self.empty() @empty ||= self.new(nil, nil) end
 def each() yield(head)
t = tail
while t.!=(ImmutableStack.empty) do
  h, t = t.pop
  yield(h)
end
 end
 def initialize(h,t) @head = h
@tail = t
self.freeze
 end
     private


attr_reader :head, :tail

           end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
maroon-0.8.0 lib/ImmutableStack.rb