Class: Prelude::MinimalArrayList

Inherits:
Object
  • Object
show all
Includes:
ProperRubyList
Defined in:
lib/prelude/minimal_array_list.rb

Overview

This is an impementation of the minimally useful list based on Ruby arrays.

Direct Known Subclasses

ArrayList

Instance Method Summary collapse

Methods included from ProperRubyList

#each

Constructor Details

#initialize(a = nil) ⇒ MinimalArrayList

Returns a new instance of MinimalArrayList.



33
34
35
36
# File 'lib/prelude/minimal_array_list.rb', line 33

def initialize(a=nil)
  @arr = (!a.nil? and a.kind_of?(Array)) ? a : []
  self
end

Instance Method Details

#cons(v) ⇒ Object



38
39
40
# File 'lib/prelude/minimal_array_list.rb', line 38

def cons(v)
  self.class.new([v]+@arr)
end

#headObject

Raises:



42
43
44
45
# File 'lib/prelude/minimal_array_list.rb', line 42

def head
  raise EmptyListError if null
  @arr[0]
end

#nullObject



52
53
54
# File 'lib/prelude/minimal_array_list.rb', line 52

def null
  @arr.length == 0
end

#tailObject

Raises:



47
48
49
50
# File 'lib/prelude/minimal_array_list.rb', line 47

def tail
  raise EmptyListError if null
  self.class.new(@arr[1..-1])
end

#to_aObject



56
57
58
# File 'lib/prelude/minimal_array_list.rb', line 56

def to_a
  @arr
end