Sha256: 0809cdc71938db6262e94c24b4ba0da916bb6f684a29c69d11a77f45096145d0
Contents?: true
Size: 480 Bytes
Versions: 3
Compression:
Stored size: 480 Bytes
Contents
module Rupture class List < Seq class << self alias create new end private_class_method :create attr_reader :seq, :size def initialize(seq, size) @seq = seq.seq @size = size end def self.new(*args) list = Empty args.reverse_each do |x| list = list.conj(x) end list end def conj(x) self.class.send(:create, Cons.new(x, @seq), @size.inc) end Empty = create(nil, 0) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rupture-0.3.0 | lib/rupture/list.rb |
rupture-0.2.1 | lib/rupture/list.rb |
rupture-0.2.0 | lib/rupture/list.rb |