Class: Prelude::MinimalArrayList
- Inherits:
-
Object
- Object
- Prelude::MinimalArrayList
- 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
Instance Method Summary collapse
- #cons(v) ⇒ Object
- #head ⇒ Object
-
#initialize(a = nil) ⇒ MinimalArrayList
constructor
A new instance of MinimalArrayList.
- #null ⇒ Object
- #tail ⇒ Object
- #to_a ⇒ Object
Methods included from ProperRubyList
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 |
#head ⇒ Object
42 43 44 45 |
# File 'lib/prelude/minimal_array_list.rb', line 42 def head raise EmptyListError if null @arr[0] end |
#null ⇒ Object
52 53 54 |
# File 'lib/prelude/minimal_array_list.rb', line 52 def null @arr.length == 0 end |
#tail ⇒ Object
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_a ⇒ Object
56 57 58 |
# File 'lib/prelude/minimal_array_list.rb', line 56 def to_a @arr end |