Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface ISeq<T>

Lisp-like sequence abstraction for arbitrary types using first & next operations only.

remarks

Unlike ES6 iterators this approach does not conflate both operations and first() can be called any number of times to obtain the current value (if any) from the sequence.

Type parameters

  • T

Hierarchy

  • ISeq

Index

Methods

Methods

first

  • first(): undefined | T
  • Returns the sequence's first value or undefined if there're no further values.

    remarks

    If the sequence is guaranteed to not include undefined values, a simple check for seq.first() === undefined is sufficient to determine the end. If the sequence DOES contain undefined values, the check should use seq.next().

    Returns undefined | T

next

  • next(): undefined | ISeq<T>
  • Returns a new sequence of the remaining elements or undefined if there're no further values.

    remarks

    In general, implementations of this interface MUST always return a new sequence instance and not mutate some internal cursor. I.e. seq.next() !== seq

    Returns undefined | ISeq<T>

Generated using TypeDoc