Package

scala

Permalink

package scala

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. scala
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type ::[A] = scala.collection.immutable.::[A]

    Permalink
  2. type AbstractMethodError = java.lang.AbstractMethodError

    Permalink
  3. type AnyRef = AnyRef

    Permalink
  4. type ArrayIndexOutOfBoundsException = java.lang.ArrayIndexOutOfBoundsException

    Permalink
  5. type BigDecimal = scala.math.BigDecimal

    Permalink
  6. type BigInt = scala.math.BigInt

    Permalink
  7. type BufferedIterator[+A] = scala.collection.BufferedIterator[A]

    Permalink
  8. type ClassCastException = java.lang.ClassCastException

    Permalink
  9. trait Curried extends CurriedWithTypeParameters

    Permalink

    A marker trait that enables curried varargs.

    A marker trait that enables curried varargs.

    Given a function call f(a, b, c), when f is a subtype of Curried, it should be rewritten to f.applyBegin.applyNext(a).applyNext(b).applyNext(c).applyEnd.

    Optionally, some arguments to a Curried call may be a sequence argument marked as _*. Given a function call f(p1, s1: _*, p2), when translating it to the curried form, the sequence argument will becomes a foldLeft call.

    f.applyBegin
      .applyNext(p1)
      .applyNextSeq(s1)
      .applyNext(p2)
    .applyEnd
    

    Unlike traditional repeated parameters, which restrict the sequence argument at the last position, sequence arguments in a curried call are allowed at any position.

    When a Curried is invoked with some type arguments, those type arguments will be moved to the applyBegin method. Therefore, List[Int](1 to 3: _*) should be translated to (1 to 3).foldLeft(List.applyBegin[Int])(_.applyNext(_)).applyEnd.

    Example:
    1. Fast list builder

      class PartiallyAppliedInitializer[A](builder: collection.mutable.Builder[A, List[A]]) {
        def applyEnd = builder.result
        def applyNextSeq(seq: Seq[A]) = {
          builder ++= seq
          this
        }
        def applyNext(a: A) = {
          builder += a
          this
        }
      }
      object FastListInitializer extends Curried {
        def applyBegin[A]:PartiallyAppliedInitializer[A] = new PartiallyAppliedInitializer(List.newBuilder[A])
      }
      FastListInitializer(0, 4) should be(List(0, 4))
      FastListInitializer[Int](0, 100 to 103: _*, 1) should be(List(0, 100, 101, 102, 103, 1))
  10. type Either[+A, +B] = scala.util.Either[A, B]

    Permalink
  11. type Equiv[T] = scala.math.Equiv[T]

    Permalink
  12. type Error = java.lang.Error

    Permalink
  13. type Exception = java.lang.Exception

    Permalink
  14. type Fractional[T] = scala.math.Fractional[T]

    Permalink
  15. type IllegalArgumentException = java.lang.IllegalArgumentException

    Permalink
  16. type IndexOutOfBoundsException = java.lang.IndexOutOfBoundsException

    Permalink
  17. type IndexedSeq[+A] = scala.collection.IndexedSeq[A]

    Permalink
  18. type Integral[T] = scala.math.Integral[T]

    Permalink
  19. type InterruptedException = java.lang.InterruptedException

    Permalink
  20. type Iterable[+A] = scala.collection.Iterable[A]

    Permalink
  21. type Iterator[+A] = scala.collection.Iterator[A]

    Permalink
  22. type Left[+A, +B] = scala.util.Left[A, B]

    Permalink
  23. type List[+A] = scala.collection.immutable.List[A]

    Permalink
  24. type NoSuchElementException = java.util.NoSuchElementException

    Permalink
  25. type NullPointerException = java.lang.NullPointerException

    Permalink
  26. type NumberFormatException = java.lang.NumberFormatException

    Permalink
  27. type Numeric[T] = scala.math.Numeric[T]

    Permalink
  28. type Ordered[T] = scala.math.Ordered[T]

    Permalink
  29. type Ordering[T] = scala.math.Ordering[T]

    Permalink
  30. type PartialOrdering[T] = scala.math.PartialOrdering[T]

    Permalink
  31. type PartiallyOrdered[T] = scala.math.PartiallyOrdered[T]

    Permalink
  32. type Range = scala.collection.immutable.Range

    Permalink
  33. type Right[+A, +B] = scala.util.Right[A, B]

    Permalink
  34. type RuntimeException = java.lang.RuntimeException

    Permalink
  35. type Seq[+A] = scala.collection.Seq[A]

    Permalink
  36. type Stream[+A] = scala.collection.immutable.Stream[A]

    Permalink
  37. type StringBuilder = scala.collection.mutable.StringBuilder

    Permalink
  38. type StringIndexOutOfBoundsException = java.lang.StringIndexOutOfBoundsException

    Permalink
  39. type Throwable = java.lang.Throwable

    Permalink
  40. type Traversable[+A] = scala.collection.Traversable[A]

    Permalink
  41. type TraversableOnce[+A] = scala.collection.TraversableOnce[A]

    Permalink
  42. type UnsupportedOperationException = java.lang.UnsupportedOperationException

    Permalink
  43. type Vector[+A] = scala.collection.immutable.Vector[A]

    Permalink

Value Members

  1. val #::: scala.collection.immutable.Stream.#::.type

    Permalink
  2. val +:: scala.collection.+:.type

    Permalink
  3. val :+: scala.collection.:+.type

    Permalink
  4. val ::: scala.collection.immutable.::.type

    Permalink
  5. val AnyRef: Specializable

    Permalink
  6. val BigDecimal: scala.math.BigDecimal.type

    Permalink
  7. val BigInt: scala.math.BigInt.type

    Permalink
  8. val Either: scala.util.Either.type

    Permalink
  9. val Equiv: scala.math.Equiv.type

    Permalink
  10. val Fractional: scala.math.Fractional.type

    Permalink
  11. val IndexedSeq: scala.collection.IndexedSeq.type

    Permalink
  12. val Integral: scala.math.Integral.type

    Permalink
  13. val Iterable: scala.collection.Iterable.type

    Permalink
  14. val Iterator: scala.collection.Iterator.type

    Permalink
  15. val Left: scala.util.Left.type

    Permalink
  16. val List: scala.collection.immutable.List.type

    Permalink
  17. val Nil: scala.collection.immutable.Nil.type

    Permalink
  18. val Numeric: scala.math.Numeric.type

    Permalink
  19. val Ordered: scala.math.Ordered.type

    Permalink
  20. val Ordering: scala.math.Ordering.type

    Permalink
  21. val Range: scala.collection.immutable.Range.type

    Permalink
  22. val Right: scala.util.Right.type

    Permalink
  23. val Seq: scala.collection.Seq.type

    Permalink
  24. val Stream: scala.collection.immutable.Stream.type

    Permalink
  25. val StringBuilder: scala.collection.mutable.StringBuilder.type

    Permalink
  26. val Traversable: scala.collection.Traversable.type

    Permalink
  27. val Vector: scala.collection.immutable.Vector.type

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped