Packages

object Accumulator

Contains factory methods to build Accumulators.

Note that the Accumulator object itself is not a factory, but it is implicitly convert to a factory according to the element type, see Accumulator.toFactory.

This allows passing the Accumulator object as argument when a collection.Factory, and the implicit Accumulator.AccumulatorFactoryShape instance is used to build a specialized Accumulator according to the element type:

scala> val intAcc = Accumulator(1,2,3)
intAcc: scala.collection.convert.IntAccumulator = IntAccumulator(1, 2, 3)

scala> val anyAccc = Accumulator("K")
anyAccc: scala.collection.convert.AnyAccumulator[String] = AnyAccumulator(K)

scala> val intAcc2 = List(1,2,3).to(Accumulator)
intAcc2: scala.jdk.IntAccumulator = IntAccumulator(1, 2, 3)

scala> val anyAcc2 = List("K").to(Accumulator)
anyAcc2: scala.jdk.AnyAccumulator[String] = AnyAccumulator(K)
Source
Accumulator.scala
Linear Supertypes
Content Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Accumulator
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. sealed trait AccumulatorFactoryShape[A, C] extends AnyRef

    An implicit AccumulatorFactoryShape is used in Accumulator factory method to return specialized variants according to the element type.

  2. sealed trait LowPriorityAccumulatorFactoryShape extends AnyRef

Value Members

  1. def apply[A, C](elems: A*)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

    Creates an Accumulator with the specified elements.

    Creates an Accumulator with the specified elements.

    A

    the type of the Accumulator's elements

    C

    the (inferred) specific type of the Accumulator

    elems

    the elements of the created Accumulator

    returns

    a new Accumulator with elements elems

  2. def concat[A, C](xss: Iterable[A]*)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

    Concatenates all argument collections into a single Accumulator.

    Concatenates all argument collections into a single Accumulator.

    xss

    the collections that are to be concatenated.

    returns

    the concatenation of all the collections.

  3. def empty[A, C](implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

    An empty collection

    An empty collection

    A

    the type of the Accumulator's elements

  4. def fill[A, C](n1: Int, n2: Int, n3: Int, n4: Int, n5: Int)(elem: => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[AnyAccumulator[AnyAccumulator[AnyAccumulator[C]]]]

    Produces a five-dimensional Accumulator containing the results of some element computation a number of times.

    Produces a five-dimensional Accumulator containing the results of some element computation a number of times.

    n1

    the number of elements in the 1st dimension

    n2

    the number of elements in the 2nd dimension

    n3

    the number of elements in the 3rd dimension

    n4

    the number of elements in the 4th dimension

    n5

    the number of elements in the 5th dimension

    elem

    the element computation

    returns

    An Accumulator that contains the results of n1 x n2 x n3 x n4 x n5 evaluations of elem.

  5. def fill[A, C](n1: Int, n2: Int, n3: Int, n4: Int)(elem: => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[AnyAccumulator[AnyAccumulator[C]]]

    Produces a four-dimensional Accumulator containing the results of some element computation a number of times.

    Produces a four-dimensional Accumulator containing the results of some element computation a number of times.

    n1

    the number of elements in the 1st dimension

    n2

    the number of elements in the 2nd dimension

    n3

    the number of elements in the 3rd dimension

    n4

    the number of elements in the 4th dimension

    elem

    the element computation

    returns

    An Accumulator that contains the results of n1 x n2 x n3 x n4 evaluations of elem.

  6. def fill[A, C](n1: Int, n2: Int, n3: Int)(elem: => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[AnyAccumulator[C]]

    Produces a three-dimensional Accumulator containing the results of some element computation a number of times.

    Produces a three-dimensional Accumulator containing the results of some element computation a number of times.

    n1

    the number of elements in the 1st dimension

    n2

    the number of elements in the 2nd dimension

    n3

    the number of elements in the 3rd dimension

    elem

    the element computation

    returns

    An Accumulator that contains the results of n1 x n2 x n3 evaluations of elem.

  7. def fill[A, C](n1: Int, n2: Int)(elem: => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[C]

    Produces a two-dimensional Accumulator containing the results of some element computation a number of times.

    Produces a two-dimensional Accumulator containing the results of some element computation a number of times.

    n1

    the number of elements in the 1st dimension

    n2

    the number of elements in the 2nd dimension

    elem

    the element computation

    returns

    An Accumulator that contains the results of n1 x n2 evaluations of elem.

  8. def fill[A, C](n: Int)(elem: => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

    Produces an Accumulator containing the results of some element computation a number of times.

    Produces an Accumulator containing the results of some element computation a number of times.

    n

    the number of elements contained in the Accumulator.

    elem

    the element computation

    returns

    An Accumulator that contains the results of n evaluations of elem.

  9. def from[A, C](source: IterableOnce[A])(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

    Creates a target Accumulator from an existing source collection

    Creates a target Accumulator from an existing source collection

    A

    the type of the Accumulator’s elements

    C

    the (inferred) specific type of the Accumulator

    source

    Source collection

    returns

    a new Accumulator with the elements of source

  10. def iterate[A, C](start: A, len: Int)(f: (A) => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

    Produces an Accumulator containing repeated applications of a function to a start value.

    Produces an Accumulator containing repeated applications of a function to a start value.

    start

    the start value of the Accumulator

    len

    the number of elements contained in the Accumulator

    f

    the function that's repeatedly applied

    returns

    an Accumulator with len values in the sequence start, f(start), f(f(start)), ...

  11. def newBuilder[A, C](implicit canAccumulate: AccumulatorFactoryShape[A, C]): Builder[A, C]

    A

    the type of the Accumulator’s elements

    C

    the specific type of the Accumulator

    returns

    A builder for Accumulator objects.

  12. def range[A, C](start: A, end: A, step: A)(implicit arg0: Integral[A], canAccumulate: AccumulatorFactoryShape[A, C]): C

    Produces an Accumulator containing equally spaced values in some integer interval.

    Produces an Accumulator containing equally spaced values in some integer interval.

    start

    the start value of the Accumulator

    end

    the end value of the Accumulator (the first value NOT contained)

    step

    the difference between successive elements of the Accumulator (must be positive or negative)

    returns

    an Accumulator with values start, start + step, ... up to, but excluding end

  13. def range[A, C](start: A, end: A)(implicit arg0: Integral[A], canAccumulate: AccumulatorFactoryShape[A, C]): C

    Produces an Accumulator containing a sequence of increasing of integers.

    Produces an Accumulator containing a sequence of increasing of integers.

    start

    the first element of the Accumulator

    end

    the end value of the Accumulator (the first value NOT contained)

    returns

    an Accumulator with values start, start + 1, ..., end - 1

  14. def tabulate[A, C](n1: Int, n2: Int, n3: Int, n4: Int, n5: Int)(f: (Int, Int, Int, Int, Int) => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[AnyAccumulator[AnyAccumulator[AnyAccumulator[C]]]]

    Produces a five-dimensional Accumulator containing values of a given function over ranges of integer values starting from 0.

    Produces a five-dimensional Accumulator containing values of a given function over ranges of integer values starting from 0.

    n1

    the number of elements in the 1st dimension

    n2

    the number of elements in the 2nd dimension

    n3

    the number of elements in the 3rd dimension

    n4

    the number of elements in the 4th dimension

    n5

    the number of elements in the 5th dimension

    f

    The function computing element values

    returns

    An Accumulator consisting of elements f(i1, i2, i3, i4, i5) for 0 <= i1 < n1, 0 <= i2 < n2, 0 <= i3 < n3, 0 <= i4 < n4, and 0 <= i5 < n5.

  15. def tabulate[A, C](n1: Int, n2: Int, n3: Int, n4: Int)(f: (Int, Int, Int, Int) => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[AnyAccumulator[AnyAccumulator[C]]]

    Produces a four-dimensional Accumulator containing values of a given function over ranges of integer values starting from 0.

    Produces a four-dimensional Accumulator containing values of a given function over ranges of integer values starting from 0.

    n1

    the number of elements in the 1st dimension

    n2

    the number of elements in the 2nd dimension

    n3

    the number of elements in the 3rd dimension

    n4

    the number of elements in the 4th dimension

    f

    The function computing element values

    returns

    An Accumulator consisting of elements f(i1, i2, i3, i4) for 0 <= i1 < n1, 0 <= i2 < n2, 0 <= i3 < n3, and 0 <= i4 < n4.

  16. def tabulate[A, C](n1: Int, n2: Int, n3: Int)(f: (Int, Int, Int) => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[AnyAccumulator[C]]

    Produces a three-dimensional Accumulator containing values of a given function over ranges of integer values starting from 0.

    Produces a three-dimensional Accumulator containing values of a given function over ranges of integer values starting from 0.

    n1

    the number of elements in the 1st dimension

    n2

    the number of elements in the 2nd dimension

    n3

    the number of elements in the 3rd dimension

    f

    The function computing element values

    returns

    An Accumulator consisting of elements f(i1, i2, i3) for 0 <= i1 < n1, 0 <= i2 < n2, and 0 <= i3 < n3.

  17. def tabulate[A, C](n1: Int, n2: Int)(f: (Int, Int) => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): AnyAccumulator[C]

    Produces a two-dimensional Accumulator containing values of a given function over ranges of integer values starting from 0.

    Produces a two-dimensional Accumulator containing values of a given function over ranges of integer values starting from 0.

    n1

    the number of elements in the 1st dimension

    n2

    the number of elements in the 2nd dimension

    f

    The function computing element values

    returns

    An Accumulator consisting of elements f(i1, i2) for 0 <= i1 < n1 and 0 <= i2 < n2.

  18. def tabulate[A, C](n: Int)(f: (Int) => A)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

    Produces an Accumulator containing values of a given function over a range of integer values starting from 0.

    Produces an Accumulator containing values of a given function over a range of integer values starting from 0.

    n

    The number of elements in the Accumulator

    f

    The function computing element values

    returns

    An Accumulator consisting of elements f(0), ..., f(n -1)

  19. implicit def toFactory[A, C](sa: Accumulator.type)(implicit canAccumulate: AccumulatorFactoryShape[A, C]): Factory[A, C]
  20. def unfold[A, S, C](init: S)(f: (S) => Option[(A, S)])(implicit canAccumulate: AccumulatorFactoryShape[A, C]): C

    Produces an Accumulator that uses a function f to produce elements of type A and update an internal state of type S.

    Produces an Accumulator that uses a function f to produce elements of type A and update an internal state of type S.

    A

    Type of the elements

    S

    Type of the internal state

    C

    Type (usually inferred) of the Accumulator

    init

    State initial value

    f

    Computes the next element (or returns None to signal the end of the collection)

    returns

    an Accumulator that produces elements using f until f returns None

  21. object AccumulatorFactoryShape extends LowPriorityAccumulatorFactoryShape