Type Hierarchy:
Satisfied Interfaces: Category, Cloneable<List<Element>>, Collection<Element>, Correspondence<Integer,Element>, Iterable<Element,Null>, List<Element>, Ranged<Integer,List<Element>>

An implementation of List that wraps an Iterable of elements. All operations on this List are performed on the Iterable.

By: Enrique Zamudio
LazyList({Element*} elems)
cloneSource Code
shared actual List<Element> clone

Obtain a clone of this object. For a mutable object, this should return a copy of the object. For an immutable object, it is acceptable to return the object itself.

Refined declaration: clone
firstSource Code
shared actual default Element? first

The first element returned by the iterator, if any, of null if the iterable object is empty.

Refined declaration: first
hashSource Code
shared actual default Integer hash

The hash value of the value, which allows the value to be an element of a hash-based set or key of a hash-based map. Implementations must respect the constraint that if x==y then x.hash==y.hash.

Refined declaration: hash
lastSource Code
shared actual default Element? last

The last element returned by the iterator, if any, of null if the iterable object is empty. Iterable objects are potentially infinite, so calling this might never return; also, this implementation will iterate through all the elements, which might be very time-consuming.

Refined declaration: last
lastIndexSource Code

The index of the last element of the list, or null if the list is empty.

Refined declaration: lastIndex
restSource Code
shared actual List<Element> rest

Returns an iterable object containing all but the first element of this container.

Refined declaration: rest
reversedSource Code
shared actual List<Element> reversed

Returns a List with the elements of this List in reverse order. This operation will create copy the elements to a new List, so changes to the original Iterable will no longer be reflected in the new List.

Refined declaration: reversed
Inherited Attributes
Attributes inherited from: Object
Attributes inherited from: Cloneable<Clone>
Attributes inherited from: Collection<Element>
Attributes inherited from: Correspondence<Key,Item>
Attributes inherited from: Iterable<Element,Absent>
Attributes inherited from: List<Element>
equalsSource Code
shared actual default Boolean equals(Object that)

Determine if two values are equal. Implementations should respect the constraints that:

  • if x===y then x==y (reflexivity),
  • if x==y then y==x (symmetry),
  • if x==y and y==z then x==z (transitivity).

Furthermore it is recommended that implementations ensure that if x==y then x and y have the same concrete class.

Refined declaration: equals
findLastSource Code
shared actual default Element? findLast(Boolean selecting(Element elem))

The last element which satisfies the given predicate, if any, or null otherwise.

Refined declaration: findLast
getSource Code

Returns the value defined for the given key, or null if there is no value defined for the given key.

Refined declaration: get
iteratorSource Code
shared actual Iterator<Element> iterator()

An iterator for the elements belonging to this container.

Refined declaration: iterator
segmentSource Code
shared actual List<Element> segment(Integer from, Integer length)

Obtain a segment containing the mapped values starting from the given index, with the given length.

Refined declaration: segment
spanSource Code
shared actual List<Element> span(Integer from, Integer to)

Obtain a span containing the mapped values between the two given indices.

Refined declaration: span
spanFromSource Code
shared actual List<Element> spanFrom(Integer from)

Obtain a span containing the mapped values between the starting index and the end of the receiver.

Refined declaration: spanFrom
spanToSource Code
shared actual List<Element> spanTo(Integer to)

Obtain a span containing the mapped values between the start of the receiver and the end index.

Refined declaration: spanTo
Inherited Methods
Methods inherited from: Category
Methods inherited from: Correspondence<Key,Item>
Methods inherited from: Iterable<Element,Absent>
Methods inherited from: List<Element>
Methods inherited from: Ranged<Index,Span>