interface Sequence

interface Sequence

lib/sequence.tya:2

Sequence provides the sequence standard library API.

Source
# Sequence provides the sequence standard library API.
interface Sequence extends Iterable
  # iter provides the sequence API operation.
  # @return Iterator the resulting value.
  iter: ->
  # map provides the sequence API operation.
  # @param fn Function fn value.
  # @return Sequence the resulting value.
  map: fn ->
    MapSequence(self, fn)
  # filter provides the sequence API operation.
  # @param fn Function fn value.
  # @return Sequence the resulting value.
  filter: fn ->
    FilterSequence(self, fn)
  # take provides the sequence API operation.
  # @param n Int n value.
  # @return Sequence the resulting value.
  take: n ->
    TakeSequence(self, n)
  # drop provides the sequence API operation.
  # @param n Int n value.
  # @return Sequence the resulting value.
  drop: n ->
    DropSequence(self, n)
  # reduce provides the sequence API operation.
  # @param initial Int initial value.
  # @param fn Function fn value.
  # @return Any the resulting value.
  reduce: initial, fn ->
    acc = initial
    for item in self
      acc = fn(acc, item)
    acc
  # each provides the sequence API operation.
  # @param fn Function fn value.
  # @return Nil the resulting value.
  each: fn ->
    for item in self
      fn(item)
    nil
  # any? provides the sequence API operation.
  # @param fn Function fn value.
  # @return Boolean the resulting value.
  any?: fn ->
    for item in self
      if fn(item)
        return true
    false
  # all? provides the sequence API operation.
  # @param fn Function fn value.
  # @return Boolean the resulting value.
  all?: fn ->
    for item in self
      if not fn(item)
        return false
    true
  # find provides the sequence API operation.
  # @param fn Function fn value.
  # @return Any the resulting value.
  find: fn ->
    for item in self
      if fn(item)
        return item
    nil
  # to_a provides the sequence API operation.
  # @return Array the resulting value.
  to_a: ->
    out = []
    for item in self
      out.push(item)
    out

Methods

all?

Sequence.all?(fn)

lib/sequence.tya:53

all? provides the sequence API operation.

Source
  # all? provides the sequence API operation.
  # @param fn Function fn value.
  # @return Boolean the resulting value.
  all?: fn ->
    for item in self
      if not fn(item)
        return false
    true

any?

Sequence.any?(fn)

lib/sequence.tya:45

any? provides the sequence API operation.

Source
  # any? provides the sequence API operation.
  # @param fn Function fn value.
  # @return Boolean the resulting value.
  any?: fn ->
    for item in self
      if fn(item)
        return true
    false

drop

Sequence.drop(n)

lib/sequence.tya:24

drop provides the sequence API operation.

Source
  # drop provides the sequence API operation.
  # @param n Int n value.
  # @return Sequence the resulting value.
  drop: n ->
    DropSequence(self, n)

each

Sequence.each(fn)

lib/sequence.tya:38

each provides the sequence API operation.

Source
  # each provides the sequence API operation.
  # @param fn Function fn value.
  # @return Nil the resulting value.
  each: fn ->
    for item in self
      fn(item)
    nil

filter

Sequence.filter(fn)

lib/sequence.tya:14

filter provides the sequence API operation.

Source
  # filter provides the sequence API operation.
  # @param fn Function fn value.
  # @return Sequence the resulting value.
  filter: fn ->
    FilterSequence(self, fn)

find

Sequence.find(fn)

lib/sequence.tya:61

find provides the sequence API operation.

Source
  # find provides the sequence API operation.
  # @param fn Function fn value.
  # @return Any the resulting value.
  find: fn ->
    for item in self
      if fn(item)
        return item
    nil

iter

Sequence.iter()

lib/sequence.tya:5

iter provides the sequence API operation.

Source
  # iter provides the sequence API operation.
  # @return Iterator the resulting value.
  iter: ->

map

Sequence.map(fn)

lib/sequence.tya:9

map provides the sequence API operation.

Source
  # map provides the sequence API operation.
  # @param fn Function fn value.
  # @return Sequence the resulting value.
  map: fn ->
    MapSequence(self, fn)

reduce

Sequence.reduce(initial, fn)

lib/sequence.tya:30

reduce provides the sequence API operation.

Source
  # reduce provides the sequence API operation.
  # @param initial Int initial value.
  # @param fn Function fn value.
  # @return Any the resulting value.
  reduce: initial, fn ->
    acc = initial
    for item in self
      acc = fn(acc, item)
    acc

take

Sequence.take(n)

lib/sequence.tya:19

take provides the sequence API operation.

Source
  # take provides the sequence API operation.
  # @param n Int n value.
  # @return Sequence the resulting value.
  take: n ->
    TakeSequence(self, n)

to_a

Sequence.to_a()

lib/sequence.tya:68

to_a provides the sequence API operation.

Source
  # to_a provides the sequence API operation.
  # @return Array the resulting value.
  to_a: ->
    out = []
    for item in self
      out.push(item)
    out