Class: String
Class Method Summary collapse
Instance Method Summary collapse
- #==(obj) ⇒ Object
- #===(obj) ⇒ Object
- #drop(n) ⇒ Object
- #empty? ⇒ Boolean
- #first ⇒ Object
- #standard_equals ⇒ Object
- #standard_triple_equals ⇒ Object
- #take(n) ⇒ Object
- #to_stream ⇒ Object
Class Method Details
.empty ⇒ Object
84 85 86 |
# File 'lib/raskell/array.rb', line 84 def self.empty "" end |
.next_item ⇒ Object
116 117 118 119 |
# File 'lib/raskell/array.rb', line 116 def self.next_item next_fn = ->(xs) { xs.empty? ? [:done] : [:yield, xs.first, Stream.new(next_fn, xs.drop(1))] } next_fn end |
.to_stream(xs) ⇒ Object
121 122 123 |
# File 'lib/raskell/array.rb', line 121 def self.to_stream(xs) Stream.new(self.next_item, xs) end |
Instance Method Details
#==(obj) ⇒ Object
130 131 132 |
# File 'lib/raskell/array.rb', line 130 def ==(obj) obj.kind_of?(Stream) ? self.to_stream == obj : standard_equals(obj) end |
#===(obj) ⇒ Object
135 136 137 |
# File 'lib/raskell/array.rb', line 135 def ===(obj) obj.kind_of?(Stream) ? self.to_stream === obj : standard_triple_equals(obj) end |
#drop(n) ⇒ Object
106 107 108 109 110 111 112 113 114 |
# File 'lib/raskell/array.rb', line 106 def drop(n) if n == 0 self elsif n >= self.length "" else self.slice(n, self.length) end end |
#empty? ⇒ Boolean
88 89 90 |
# File 'lib/raskell/array.rb', line 88 def empty? self == "" end |
#first ⇒ Object
92 93 94 |
# File 'lib/raskell/array.rb', line 92 def first self[0] end |
#standard_equals ⇒ Object
129 |
# File 'lib/raskell/array.rb', line 129 alias_method :standard_equals, :== |
#standard_triple_equals ⇒ Object
134 |
# File 'lib/raskell/array.rb', line 134 alias_method :standard_triple_equals, :=== |
#take(n) ⇒ Object
96 97 98 99 100 101 102 103 104 |
# File 'lib/raskell/array.rb', line 96 def take(n) if n == 0 "" elsif n >= self.length self else self.slice(0, n) end end |
#to_stream ⇒ Object
125 126 127 |
# File 'lib/raskell/array.rb', line 125 def to_stream self.class.to_stream(self) end |