o

scalatutorial.sections

StandardLibrary

object StandardLibrary extends AnyFlatSpec with ScalaTutorialSection

Linear Supertypes
ScalaTutorialSection, Section, Matchers, Explicitly, MatcherWords, Tolerance, AnyFlatSpec, AnyFlatSpecLike, Documenting, Alerting, Notifying, Informing, CanVerb, MustVerb, ShouldVerb, TestRegistration, TestSuite, Suite, Serializable, Assertions, TripleEquals, TripleEqualsSupport, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. StandardLibrary
  2. ScalaTutorialSection
  3. Section
  4. Matchers
  5. Explicitly
  6. MatcherWords
  7. Tolerance
  8. AnyFlatSpec
  9. AnyFlatSpecLike
  10. Documenting
  11. Alerting
  12. Notifying
  13. Informing
  14. CanVerb
  15. MustVerb
  16. ShouldVerb
  17. TestRegistration
  18. TestSuite
  19. Suite
  20. Serializable
  21. Assertions
  22. TripleEquals
  23. TripleEqualsSupport
  24. AnyRef
  25. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. final class AWord extends AnyRef
    Definition Classes
    Matchers
  2. final class AnWord extends AnyRef
    Definition Classes
    Matchers
  3. sealed class AnyShouldWrapper[T] extends AnyRef
    Definition Classes
    Matchers
  4. class CheckingEqualizer[L] extends AnyRef
    Definition Classes
    TripleEqualsSupport
  5. class DecidedByEquality[A] extends Equality[A]
    Definition Classes
    Explicitly
  6. class DecidedWord extends AnyRef
    Definition Classes
    Explicitly
  7. class DeterminedByEquivalence[T] extends Equivalence[T]
    Definition Classes
    Explicitly
  8. class DeterminedWord extends AnyRef
    Definition Classes
    Explicitly
  9. class Equalizer[L] extends AnyRef
    Definition Classes
    TripleEqualsSupport
  10. final class HavePropertyMatcherGenerator extends AnyRef
    Definition Classes
    Matchers
  11. final class KeyWord extends AnyRef
    Definition Classes
    Matchers
  12. final class PlusOrMinusWrapper[T] extends AnyRef
    Definition Classes
    Tolerance
  13. final class RegexWord extends AnyRef
    Definition Classes
    Matchers
  14. final class RegexWrapper extends AnyRef
    Definition Classes
    Matchers
  15. class ResultOfBeWordForAny[T] extends AnyRef
    Definition Classes
    Matchers
  16. sealed class ResultOfBeWordForCollectedAny[T] extends AnyRef
    Definition Classes
    Matchers
  17. final class ResultOfBeWordForCollectedArray[T] extends ResultOfBeWordForCollectedAny[Array[T]]
    Definition Classes
    Matchers
  18. final class ResultOfCollectedAny[T] extends AnyRef
    Definition Classes
    Matchers
  19. final class ResultOfContainWordForCollectedAny[T] extends AnyRef
    Definition Classes
    Matchers
  20. final class ResultOfEndWithWordForCollectedString extends AnyRef
    Definition Classes
    Matchers
  21. final class ResultOfEndWithWordForString extends AnyRef
    Definition Classes
    Matchers
  22. final class ResultOfFullyMatchWordForCollectedString extends AnyRef
    Definition Classes
    Matchers
  23. final class ResultOfFullyMatchWordForString extends AnyRef
    Definition Classes
    Matchers
  24. final class ResultOfHaveWordForCollectedExtent[A] extends AnyRef
    Definition Classes
    Matchers
  25. final class ResultOfHaveWordForExtent[A] extends AnyRef
    Definition Classes
    Matchers
  26. final class ResultOfIncludeWordForCollectedString extends AnyRef
    Definition Classes
    Matchers
  27. final class ResultOfIncludeWordForString extends AnyRef
    Definition Classes
    Matchers
  28. final class ResultOfNotWordForCollectedAny[T] extends AnyRef
    Definition Classes
    Matchers
  29. final class ResultOfStartWithWordForCollectedString extends AnyRef
    Definition Classes
    Matchers
  30. final class ResultOfStartWithWordForString extends AnyRef
    Definition Classes
    Matchers
  31. trait StringCanWrapperForVerb extends AnyRef
    Definition Classes
    CanVerb
  32. trait StringMustWrapperForVerb extends AnyRef
    Definition Classes
    MustVerb
  33. final class StringShouldWrapper extends AnyShouldWrapper[String] with org.scalatest.matchers.should.Matchers.StringShouldWrapperForVerb
    Definition Classes
    Matchers
  34. trait StringShouldWrapperForVerb extends AnyRef
    Definition Classes
    ShouldVerb
  35. class TheAfterWord extends AnyRef
    Definition Classes
    Explicitly
  36. final class TheSameInstanceAsPhrase extends AnyRef
    Definition Classes
    Matchers
  37. final class ValueWord extends AnyRef
    Definition Classes
    Matchers

Value Members

  1. def !==[T](right: Spread[T]): TripleEqualsInvocationOnSpread[T]
    Definition Classes
    TripleEqualsSupport
  2. def !==(right: Null): TripleEqualsInvocation[Null]
    Definition Classes
    TripleEqualsSupport
  3. def !==[T](right: T): TripleEqualsInvocation[T]
    Definition Classes
    TripleEqualsSupport
  4. def <[T](right: T)(implicit arg0: Ordering[T]): ResultOfLessThanComparison[T]
    Definition Classes
    Matchers
  5. def <=[T](right: T)(implicit arg0: Ordering[T]): ResultOfLessThanOrEqualToComparison[T]
    Definition Classes
    Matchers
  6. def ===[T](right: Spread[T]): TripleEqualsInvocationOnSpread[T]
    Definition Classes
    TripleEqualsSupport
  7. def ===(right: Null): TripleEqualsInvocation[Null]
    Definition Classes
    TripleEqualsSupport
  8. def ===[T](right: T): TripleEqualsInvocation[T]
    Definition Classes
    TripleEqualsSupport
  9. def >[T](right: T)(implicit arg0: Ordering[T]): ResultOfGreaterThanComparison[T]
    Definition Classes
    Matchers
  10. def >=[T](right: T)(implicit arg0: Ordering[T]): ResultOfGreaterThanOrEqualToComparison[T]
    Definition Classes
    Matchers
  11. def a[T](implicit arg0: ClassTag[T]): ResultOfATypeInvocation[T]
    Definition Classes
    Matchers
  12. val a: AWord
    Definition Classes
    Matchers
  13. val after: TheAfterWord
    Definition Classes
    Explicitly
  14. def all(xs: String)(implicit collecting: Collecting[Char, String], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Char]
    Definition Classes
    Matchers
  15. def all[K, V, JMAP[k, v] <: Map[k, v]](xs: JMAP[K, V])(implicit collecting: Collecting[Entry[K, V], JMAP[K, V]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Entry[K, V]]
    Definition Classes
    Matchers
  16. def all[K, V, MAP[k, v] <: GenMap[k, v]](xs: MAP[K, V])(implicit collecting: Collecting[(K, V), GenTraversable[(K, V)]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[(K, V)]
    Definition Classes
    Matchers
  17. def all[E, C[_]](xs: C[E])(implicit collecting: Collecting[E, C[E]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[E]
    Definition Classes
    Matchers
  18. def allElementsOf[R](elements: GenTraversable[R]): ResultOfAllElementsOfApplication
    Definition Classes
    Matchers
  19. def allOf(firstEle: Any, secondEle: Any, remainingEles: Any*)(implicit pos: Position): ResultOfAllOfApplication
    Definition Classes
    Matchers
  20. def an[T](implicit arg0: ClassTag[T]): ResultOfAnTypeInvocation[T]
    Definition Classes
    Matchers
  21. val an: AnWord
    Definition Classes
    Matchers
  22. macro def assert(condition: Boolean, clue: Any)(implicit prettifier: Prettifier, pos: Position): Assertion
    Definition Classes
    Assertions
  23. macro def assert(condition: Boolean)(implicit prettifier: Prettifier, pos: Position): Assertion
    Definition Classes
    Assertions
  24. macro def assertCompiles(code: String)(implicit pos: Position): Assertion
    Definition Classes
    Assertions
  25. macro def assertDoesNotCompile(code: String)(implicit pos: Position): Assertion
    Definition Classes
    Assertions
  26. def assertResult(expected: Any)(actual: Any)(implicit prettifier: Prettifier, pos: Position): Assertion
    Definition Classes
    Assertions
  27. def assertResult(expected: Any, clue: Any)(actual: Any)(implicit prettifier: Prettifier, pos: Position): Assertion
    Definition Classes
    Assertions
  28. def assertThrows[T <: AnyRef](f: => Any)(implicit classTag: ClassTag[T], pos: Position): Assertion
    Definition Classes
    Assertions
  29. macro def assertTypeError(code: String)(implicit pos: Position): Assertion
    Definition Classes
    Assertions
  30. macro def assume(condition: Boolean, clue: Any)(implicit prettifier: Prettifier, pos: Position): Assertion
    Definition Classes
    Assertions
  31. macro def assume(condition: Boolean)(implicit prettifier: Prettifier, pos: Position): Assertion
    Definition Classes
    Assertions
  32. def atLeast(num: Int, xs: String)(implicit collecting: Collecting[Char, String], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Char]
    Definition Classes
    Matchers
  33. def atLeast[K, V, JMAP[k, v] <: Map[k, v]](num: Int, xs: JMAP[K, V])(implicit collecting: Collecting[Entry[K, V], JMAP[K, V]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Entry[K, V]]
    Definition Classes
    Matchers
  34. def atLeast[K, V, MAP[k, v] <: GenMap[k, v]](num: Int, xs: MAP[K, V])(implicit collecting: Collecting[(K, V), GenTraversable[(K, V)]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[(K, V)]
    Definition Classes
    Matchers
  35. def atLeast[E, C[_]](num: Int, xs: C[E])(implicit collecting: Collecting[E, C[E]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[E]
    Definition Classes
    Matchers
  36. def atLeastOneElementOf(elements: GenTraversable[Any]): ResultOfAtLeastOneElementOfApplication
    Definition Classes
    Matchers
  37. def atLeastOneOf(firstEle: Any, secondEle: Any, remainingEles: Any*)(implicit pos: Position): ResultOfAtLeastOneOfApplication
    Definition Classes
    Matchers
  38. def atMost(num: Int, xs: String)(implicit collecting: Collecting[Char, String], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Char]
    Definition Classes
    Matchers
  39. def atMost[K, V, JMAP[k, v] <: Map[k, v]](num: Int, xs: JMAP[K, V])(implicit collecting: Collecting[Entry[K, V], JMAP[K, V]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Entry[K, V]]
    Definition Classes
    Matchers
  40. def atMost[K, V, MAP[k, v] <: GenMap[k, v]](num: Int, xs: MAP[K, V])(implicit collecting: Collecting[(K, V), GenTraversable[(K, V)]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[(K, V)]
    Definition Classes
    Matchers
  41. def atMost[E, C[_]](num: Int, xs: C[E])(implicit collecting: Collecting[E, C[E]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[E]
    Definition Classes
    Matchers
  42. def atMostOneElementOf[R](elements: GenTraversable[R]): ResultOfAtMostOneElementOfApplication
    Definition Classes
    Matchers
  43. def atMostOneOf(firstEle: Any, secondEle: Any, remainingEles: Any*)(implicit pos: Position): ResultOfAtMostOneOfApplication
    Definition Classes
    Matchers
  44. val be: BeWord
    Definition Classes
    MatcherWords
  45. def between(from: Int, upTo: Int, xs: String)(implicit collecting: Collecting[Char, String], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Char]
    Definition Classes
    Matchers
  46. def between[K, V, JMAP[k, v] <: Map[k, v]](from: Int, upTo: Int, xs: JMAP[K, V])(implicit collecting: Collecting[Entry[K, V], JMAP[K, V]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Entry[K, V]]
    Definition Classes
    Matchers
  47. def between[E, C[_]](from: Int, upTo: Int, xs: C[E])(implicit collecting: Collecting[E, C[E]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[E]
    Definition Classes
    Matchers
  48. def cancel(cause: Throwable)(implicit pos: Position): Nothing
    Definition Classes
    Assertions
  49. def cancel(message: String, cause: Throwable)(implicit pos: Position): Nothing
    Definition Classes
    Assertions
  50. def cancel(message: String)(implicit pos: Position): Nothing
    Definition Classes
    Assertions
  51. def cancel()(implicit pos: Position): Nothing
    Definition Classes
    Assertions
  52. val compile: CompileWord
    Definition Classes
    MatcherWords
  53. val contain: ContainWord
    Definition Classes
    MatcherWords
  54. def convertEquivalenceToAToBConstraint[A, B](equivalenceOfB: Equivalence[B])(implicit ev: <:<[A, B]): CanEqual[A, B]
    Definition Classes
    TripleEquals → TripleEqualsSupport
  55. def convertEquivalenceToBToAConstraint[A, B](equivalenceOfA: Equivalence[A])(implicit ev: <:<[B, A]): CanEqual[A, B]
    Definition Classes
    TripleEquals → TripleEqualsSupport
  56. implicit def convertNumericToPlusOrMinusWrapper[T](pivot: T)(implicit arg0: Numeric[T]): PlusOrMinusWrapper[T]
    Definition Classes
    Tolerance
  57. implicit def convertSymbolToHavePropertyMatcherGenerator(symbol: Symbol)(implicit prettifier: Prettifier, pos: Position): HavePropertyMatcherGenerator
    Definition Classes
    Matchers
  58. implicit def convertToAnyShouldWrapper[T](o: T)(implicit pos: Position, prettifier: Prettifier): AnyShouldWrapper[T]
    Definition Classes
    Matchers
  59. def convertToCheckingEqualizer[T](left: T): CheckingEqualizer[T]
    Definition Classes
    TripleEquals → TripleEqualsSupport
  60. implicit def convertToEqualizer[T](left: T): Equalizer[T]
    Definition Classes
    TripleEquals → TripleEqualsSupport
  61. implicit def convertToRegexWrapper(o: Regex): RegexWrapper
    Definition Classes
    Matchers
  62. implicit def convertToStringCanWrapper(o: String)(implicit position: Position): StringCanWrapperForVerb
    Definition Classes
    CanVerb
  63. implicit def convertToStringMustWrapperForVerb(o: String)(implicit position: Position): StringMustWrapperForVerb
    Definition Classes
    MustVerb
  64. implicit def convertToStringShouldWrapper(o: String)(implicit pos: Position, prettifier: Prettifier): StringShouldWrapper
    Definition Classes
    Matchers
  65. implicit def convertToStringShouldWrapperForVerb(o: String)(implicit position: Position): StringShouldWrapperForVerb
    Definition Classes
    ShouldVerb
  66. val decided: DecidedWord
    Definition Classes
    Explicitly
  67. def defaultEquality[A]: Equality[A]
    Definition Classes
    TripleEqualsSupport
  68. val defined: DefinedWord
    Definition Classes
    MatcherWords
  69. def definedAt[T](right: T): ResultOfDefinedAt[T]
    Definition Classes
    Matchers
  70. val determined: DeterminedWord
    Definition Classes
    Explicitly
  71. def either(res0: Either[String, Int], res1: Either[String, Int]): Unit

    This subsection introduces types that are useful to handle failures.

    Error Handling

    This subsection introduces types that are useful to handle failures.

    Try

    Try[A] represents a computation that attempted to return an A. It can either be:

    • a Success[A],
    • or a Failure.

    The key difference between None and Failures is that the latter provide the reason for the failure:

    def sqrt(x: Double): Try[Double] =
      if (x < 0) Failure(new IllegalArgumentException("x must be positive"))
      else Success(…)
    Manipulating Try[A] values

    Like options and lists, Try[A] is an algebraic data type, so it can be decomposed using pattern matching.

    Try[A] also have map, filter and flatMap. They behave the same as with Option[A], except that any exception that is thrown during their execution is converted into a Failure.

    Either

    Either can also be useful to handle failures. Basically, the type Either[A, B] represents a value that can either be of type A or of type B. It can be decomposed in two cases: Left or Right.

    You can use one case to represent the failure and the other to represent the success. What makes it different from Try is that you can choose a type other than Throwable to represent the exception. Another difference is that exceptions that occur when transforming Either values are not converted into failures.

    def sqrt(x: Double): Either[String, Double] =
      if (x < 0) Left("x must be positive")
      else Right(…)
    Manipulating Either[A, B] Values

    Since Scala 2.12, Either has map and flatMap. These methods transform the Right case only. We say that Either is “right biased”:

    Right(1).map((x: Int) => x + 1) shouldBe Right(2)
    Left("foo").map((x: Int) => x + 1) shouldBe Left("foo")

    Either also has a filterOrElse method that turns a Right value into a Left value if it does not satisfy a given predicate:

    Right(1).filterOrElse(x => x % 2 == 0, "Odd value") shouldBe Left("Odd value")

    However, prior to Scala 2.12, Either was “unbiased”. You had to explicitly specify which “side” (Left or Right) you wanted to map:

  72. val empty: EmptyWord
    Definition Classes
    MatcherWords
  73. val endWith: EndWithWord
    Definition Classes
    MatcherWords
  74. def equal(o: Null): Matcher[AnyRef]
    Definition Classes
    Matchers
  75. def equal[T](spread: Spread[T]): Matcher[T]
    Definition Classes
    Matchers
  76. def equal(right: Any): MatcherFactory1[Any, Equality]
    Definition Classes
    MatcherWords
  77. def every(xs: String)(implicit collecting: Collecting[Char, String], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Char]
    Definition Classes
    Matchers
  78. def every[K, V, JMAP[k, v] <: Map[k, v]](xs: JMAP[K, V])(implicit collecting: Collecting[Entry[K, V], JMAP[K, V]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Entry[K, V]]
    Definition Classes
    Matchers
  79. def every[K, V, MAP[k, v] <: Map[k, v]](xs: MAP[K, V])(implicit collecting: Collecting[(K, V), GenTraversable[(K, V)]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[(K, V)]
    Definition Classes
    Matchers
  80. def every[E, C[_]](xs: C[E])(implicit collecting: Collecting[E, C[E]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[E]
    Definition Classes
    Matchers
  81. def exactly(num: Int, xs: String)(implicit collecting: Collecting[Char, String], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Char]
    Definition Classes
    Matchers
  82. def exactly[K, V, JMAP[k, v] <: Map[k, v]](num: Int, xs: JMAP[K, V])(implicit collecting: Collecting[Entry[K, V], JMAP[K, V]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Entry[K, V]]
    Definition Classes
    Matchers
  83. def exactly[K, V, MAP[k, v] <: GenMap[k, v]](num: Int, xs: MAP[K, V])(implicit collecting: Collecting[(K, V), GenTraversable[(K, V)]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[(K, V)]
    Definition Classes
    Matchers
  84. def exactly[E, C[_]](num: Int, xs: C[E])(implicit collecting: Collecting[E, C[E]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[E]
    Definition Classes
    Matchers
  85. final def execute(testName: String, configMap: ConfigMap, color: Boolean, durations: Boolean, shortstacks: Boolean, fullstacks: Boolean, stats: Boolean): Unit
    Definition Classes
    Suite
  86. val exist: ExistWord
    Definition Classes
    MatcherWords
  87. def expectedTestCount(filter: Filter): Int
    Definition Classes
    Suite
  88. def fail(cause: Throwable)(implicit pos: Position): Nothing
    Definition Classes
    Assertions
  89. def fail(message: String, cause: Throwable)(implicit pos: Position): Nothing
    Definition Classes
    Assertions
  90. def fail(message: String)(implicit pos: Position): Nothing
    Definition Classes
    Assertions
  91. def fail()(implicit pos: Position): Nothing
    Definition Classes
    Assertions
  92. val fullyMatch: FullyMatchWord
    Definition Classes
    MatcherWords
  93. val have: HaveWord
    Definition Classes
    MatcherWords
  94. def inOrder(firstEle: Any, secondEle: Any, remainingEles: Any*)(implicit pos: Position): ResultOfInOrderApplication
    Definition Classes
    Matchers
  95. def inOrderElementsOf[R](elements: GenTraversable[R]): ResultOfInOrderElementsOfApplication
    Definition Classes
    Matchers
  96. def inOrderOnly[T](firstEle: Any, secondEle: Any, remainingEles: Any*)(implicit pos: Position): ResultOfInOrderOnlyApplication
    Definition Classes
    Matchers
  97. val include: IncludeWord
    Definition Classes
    MatcherWords
  98. def insertionSort(res0: (Int, Int) => Boolean, res1: List[Int]): Unit

    The list is a fundamental data structure in functional programming.

    List

    The list is a fundamental data structure in functional programming.

    A list having x1, …, xn as elements is written List(x1, …, xn):

    val fruit  = List("apples", "oranges", "pears")
    val nums   = List(1, 2, 3, 4)
    val diag3  = List(List(1, 0, 0), List(0, 1, 0), List(0, 0, 1))
    val empty  = List()
    • Lists are immutable --- the elements of a list cannot be changed,
    • Lists are recursive (as you will see in the next subsection),
    • Lists are homogeneous: A list is intended to be composed of elements that all have the same type.

    That's because when you create a List of elements with different types it will look for a common ancestor. The common ancestor for all types is Any

    val heterogeneousList: List[Any] = List(1, "1", '1')

    The type of a list with elements of type T is written List[T]:

    val fruit: List[String]    = List("apples", "oranges", "pears")
    val nums : List[Int]       = List(1, 2, 3, 4)
    val diag3: List[List[Int]] = List(List(1, 0, 0), List(0, 1, 0), List(0, 0, 1))
    val empty: List[Nothing]   = List()

    Constructors of Lists

    Actually, all lists are constructed from:

    • the empty list Nil, and
    • the construction operation :: (pronounced cons): x :: xs gives a new list with the first element x, followed by the elements of xs (which is a list itself).

    For example:

    val fruit = "apples" :: ("oranges" :: ("pears" :: Nil))
    val nums  = 1 :: (2 :: (3 :: (4 :: Nil)))
    val empty = Nil
    Right Associativity

    Convention: Operators ending in “:” associate to the right.

    A :: B :: C is interpreted as A :: (B :: C).

    We can thus omit the parentheses in the definition above.

    val nums = 1 :: 2 :: 3 :: 4 :: Nil

    Operators ending in “:” are also different in the fact that they are seen as method calls of the right-hand operand.

    So the expression above is equivalent to:

    val nums = Nil.::(4).::(3).::(2).::(1)

    Manipulating Lists

    It is possible to decompose lists with pattern matching:

    • Nil: the Nil constant,
    • p :: ps: A pattern that matches a list with a head matching p and a tail matching ps.
    nums match {
      // Lists of `Int` that starts with `1` and then `2`
      case 1 :: 2 :: xs =>// Lists of length 1
      case x :: Nil =>// Same as `x :: Nil`
      case List(x) =>// The empty list, same as `Nil`
      case List() =>
      // A list that contains as only element another list that starts with `2`
      case List(2 :: xs) => …
    }

    Exercise: Sorting Lists

    Suppose we want to sort a list of numbers in ascending order:

    • One way to sort the list List(7, 3, 9, 2) is to sort the tail List(3, 9, 2) to obtain List(2, 3, 9).
    • The next step is to insert the head 7 in the right place to obtain the result List(2, 3, 7, 9).

    This idea describes Insertion Sort:

    def insertionSort(xs: List[Int]): List[Int] = xs match {
      case List() => List()
      case y :: ys => insert(y, insertionSort(ys))
    }

    Complete the definition insertion sort by filling in the blanks in the definition below:

  99. def intercept[T <: AnyRef](f: => Any)(implicit classTag: ClassTag[T], pos: Position): T
    Definition Classes
    Assertions
  100. val key: KeyWord
    Definition Classes
    Matchers
  101. val length: LengthWord
    Definition Classes
    MatcherWords
  102. def lowPriorityTypeCheckedConstraint[A, B](implicit equivalenceOfB: Equivalence[B], ev: <:<[A, B]): CanEqual[A, B]
    Definition Classes
    TripleEquals → TripleEqualsSupport
  103. val matchPattern: MatchPatternWord
    Definition Classes
    MatcherWords
  104. def message(expectedMessage: String): ResultOfMessageWordApplication
    Definition Classes
    Matchers
  105. def nestedSuites: IndexedSeq[Suite]
    Definition Classes
    Suite
  106. def no(xs: String)(implicit collecting: Collecting[Char, String], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Char]
    Definition Classes
    Matchers
  107. def no[K, V, JMAP[k, v] <: Map[k, v]](xs: JMAP[K, V])(implicit collecting: Collecting[Entry[K, V], JMAP[K, V]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[Entry[K, V]]
    Definition Classes
    Matchers
  108. def no[E, C[_]](xs: C[E])(implicit collecting: Collecting[E, C[E]], prettifier: Prettifier, pos: Position): ResultOfCollectedAny[E]
    Definition Classes
    Matchers
  109. def noElementsOf(elements: GenTraversable[Any]): ResultOfNoElementsOfApplication
    Definition Classes
    Matchers
  110. def noException(implicit pos: Position): NoExceptionWord
    Definition Classes
    MatcherWords
  111. def noneOf(firstEle: Any, secondEle: Any, remainingEles: Any*)(implicit pos: Position): ResultOfNoneOfApplication
    Definition Classes
    Matchers
  112. val not: NotWord
    Definition Classes
    MatcherWords
  113. def of[T](implicit ev: ClassTag[T]): ResultOfOfTypeInvocation[T]
    Definition Classes
    Matchers
  114. def oneElementOf(elements: GenTraversable[Any]): ResultOfOneElementOfApplication
    Definition Classes
    Matchers
  115. def oneOf(firstEle: Any, secondEle: Any, remainingEles: Any*)(implicit pos: Position): ResultOfOneOfApplication
    Definition Classes
    Matchers
  116. def only(xs: Any*)(implicit pos: Position): ResultOfOnlyApplication
    Definition Classes
    Matchers
  117. def optionFilter(res0: Option[Int], res1: Option[Int]): Unit

    Filter values with filter:

  118. def optionFlatMap(res0: Option[Int], res1: Option[Int]): Unit

    Use flatMap to transform a successful value into an optional value:

  119. def optionMap(res0: Option[Int], res1: Option[Int]): Unit

    Transform the elements of a list using map:

    Common Operations on Lists

    Transform the elements of a list using map:

    List(1, 2, 3).map(x => x + 1) == List(2, 3, 4)

    Filter elements using filter:

    List(1, 2, 3).filter(x => x % 2 == 0) == List(2)

    Transform each element of a list into a list and flatten the results into a single list using flatMap:

    val xs =
      List(1, 2, 3).flatMap { x =>
        List(x, 2 * x, 3 * x)
      }
    xs == List(1, 2, 3, 2, 4, 6, 3, 6, 9)

    Optional Values

    We represent an optional value of type A with the type Option[A]. This is useful to implement, for instance, partially defined functions:

    // The `sqrt` function is not defined for negative values
    def sqrt(x: Double): Option[Double] = …

    An Option[A] can either be None (if there is no value) or Some[A] (if there is a value):

    def sqrt(x: Double): Option[Double] =
      if (x < 0) None else Some(…)

    Manipulating Options

    It is possible to decompose options with pattern matching:

    def foo(x: Double): String =
      sqrt(x) match {
        case None => "no result"
        case Some(y) => y.toString
      }

    Common Operations on Options

    Transform an optional value with map:

  120. def pending: Assertion with PendingStatement
    Definition Classes
    Assertions
  121. def pendingUntilFixed(f: => Unit)(implicit pos: Position): Assertion with PendingStatement
    Definition Classes
    Assertions
  122. val readable: ReadableWord
    Definition Classes
    MatcherWords
  123. val regex: RegexWord
    Definition Classes
    Matchers
  124. final def registerIgnoredTest(testText: String, testTags: Tag*)(testFun: => Any)(implicit pos: Position): Unit
    Definition Classes
    AnyFlatSpecLike → TestRegistration
  125. final def registerTest(testText: String, testTags: Tag*)(testFun: => Any)(implicit pos: Position): Unit
    Definition Classes
    AnyFlatSpecLike → TestRegistration
  126. def rerunner: Option[String]
    Definition Classes
    Suite
  127. def run(testName: Option[String], args: Args): Status
    Definition Classes
    AnyFlatSpecLike → Suite
  128. val size: SizeWord
    Definition Classes
    MatcherWords
  129. val sorted: SortedWord
    Definition Classes
    MatcherWords
  130. val startWith: StartWithWord
    Definition Classes
    MatcherWords
  131. final val succeed: Assertion
    Definition Classes
    Assertions
  132. def suiteId: String
    Definition Classes
    Suite
  133. def suiteName: String
    Definition Classes
    Suite
  134. def tags: Map[String, Set[String]]
    Definition Classes
    AnyFlatSpecLike → Suite
  135. def testDataFor(testName: String, theConfigMap: ConfigMap): TestData
    Definition Classes
    AnyFlatSpecLike → Suite
  136. def testNames: Set[String]
    Definition Classes
    AnyFlatSpecLike → Suite
  137. def the[T](implicit arg0: ClassTag[T], pos: Position): ResultOfTheTypeInvocation[T]
    Definition Classes
    Matchers
  138. def theSameElementsAs(xs: GenTraversable[_]): ResultOfTheSameElementsAsApplication
    Definition Classes
    Matchers
  139. def theSameElementsInOrderAs(xs: GenTraversable[_]): ResultOfTheSameElementsInOrderAsApplication
    Definition Classes
    Matchers
  140. val theSameInstanceAs: TheSameInstanceAsPhrase
    Definition Classes
    Matchers
  141. def thrownBy(fun: => Any): ResultOfThrownByApplication
    Definition Classes
    Matchers
  142. def toString(): String
    Definition Classes
    AnyFlatSpec → AnyRef → Any
  143. val typeCheck: TypeCheckWord
    Definition Classes
    MatcherWords
  144. def typeCheckedConstraint[A, B](implicit equivalenceOfA: Equivalence[A], ev: <:<[B, A]): CanEqual[A, B]
    Definition Classes
    TripleEquals → TripleEqualsSupport
  145. implicit def unconstrainedEquality[A, B](implicit equalityOfA: Equality[A]): CanEqual[A, B]
    Definition Classes
    TripleEquals → TripleEqualsSupport
  146. val value: ValueWord
    Definition Classes
    Matchers
  147. def withClue[T](clue: Any)(fun: => T): T
    Definition Classes
    Assertions
  148. val writable: WritableWord
    Definition Classes
    MatcherWords

Deprecated Value Members

  1. def conversionCheckedConstraint[A, B](implicit equivalenceOfA: Equivalence[A], cnv: (B) => A): CanEqual[A, B]
    Definition Classes
    TripleEquals → TripleEqualsSupport
    Annotations
    @deprecated
    Deprecated

    (Since version 3.1.0) The conversionCheckedConstraint method has been deprecated and will be removed in a future version of ScalaTest. It is no longer needed now that the deprecation period of ConversionCheckedTripleEquals has expired. It will not be replaced.

  2. def convertEquivalenceToAToBConversionConstraint[A, B](equivalenceOfB: Equivalence[B])(implicit ev: (A) => B): CanEqual[A, B]
    Definition Classes
    TripleEquals → TripleEqualsSupport
    Annotations
    @deprecated
    Deprecated

    (Since version 3.1.0) The convertEquivalenceToAToBConversionConstraint method has been deprecated and will be removed in a future version of ScalaTest. It is no longer needed now that the deprecation period of ConversionCheckedTripleEquals has expired. It will not be replaced.

  3. def convertEquivalenceToBToAConversionConstraint[A, B](equivalenceOfA: Equivalence[A])(implicit ev: (B) => A): CanEqual[A, B]
    Definition Classes
    TripleEquals → TripleEqualsSupport
    Annotations
    @deprecated
    Deprecated

    (Since version 3.1.0) The convertEquivalenceToBToAConversionConstraint method has been deprecated and will be removed in a future version of ScalaTest. It is no longer needed now that the deprecation period of ConversionCheckedTripleEquals has expired. It will not be replaced.

  4. def lowPriorityConversionCheckedConstraint[A, B](implicit equivalenceOfB: Equivalence[B], cnv: (A) => B): CanEqual[A, B]
    Definition Classes
    TripleEquals → TripleEqualsSupport
    Annotations
    @deprecated
    Deprecated

    (Since version 3.1.0) The lowPriorityConversionCheckedConstraint method has been deprecated and will be removed in a future version of ScalaTest. It is no longer needed now that the deprecation period of ConversionCheckedTripleEquals has expired. It will not be replaced.

  5. final val styleName: String
    Definition Classes
    AnyFlatSpecLike → Suite
    Annotations
    @deprecated
    Deprecated

    (Since version 3.1.0) The styleName lifecycle method has been deprecated and will be removed in a future version of ScalaTest with no replacement.