A non-empty Set: an ordered, immutable, non-empty collection of elements with LinearSeq performance characteristics.
The purpose of NonEmptySet is to allow you to express in a type that a Set is non-empty, thereby eliminating the
need for (and potential exception from) a run-time check for non-emptiness. For a non-empty sequence with IndexedSeq
performance, see Every.
== Constructing NonEmptySets ==
You can construct a NonEmptySet by passing one or more elements to the NonEmptySet.apply factory method:
scala> NonEmptySet(1, 2, 3) res0: org.scalactic.anyvals.NonEmptySet[Int] = NonEmptySet(1, 2, 3)
Alternatively you can cons elements onto the End singleton object, similar to making a Set starting with Nil:
scala> 1 :: 2 :: 3 :: Nil res0: Set[Int] = Set(1, 2, 3) scala> 1 :: 2 :: 3 :: End res1: org.scalactic.NonEmptySet[Int] = NonEmptySet(1, 2, 3)
Note that although Nil is a Set[Nothing], End is
not a NonEmptySet[Nothing], because no empty NonEmptySet exists. (A non-empty Set is a series
of connected links; if you have no links, you have no non-empty Set.)
scala> val nil: Set[Nothing] = Nil
nil: Set[Nothing] = Set()
scala> val nada: NonEmptySet[Nothing] = End
<console>:16: error: type mismatch;
found : org.scalactic.anyvals.End.type
required: org.scalactic.anyvals.NonEmptySet[Nothing]
val nada: NonEmptySet[Nothing] = End
^
== Working with NonEmptySets ==
NonEmptySet does not extend Scala's Seq or Traversable traits because these require that
implementations may be empty. For example, if you invoke tail on a Seq that contains just one element,
you'll get an empty Seq:
scala> Set(1).tail res6: Set[Int] = Set()
On the other hand, many useful methods exist on Seq that when invoked on a non-empty Seq are guaranteed
to not result in an empty Seq. For convenience, NonEmptySet defines a method corresponding to every such Seq
method. Here are some examples:
NonEmptySet(1, 2, 3).map(_ + 1) // Result: NonEmptySet(2, 3, 4) NonEmptySet(1).map(_ + 1) // Result: NonEmptySet(2) NonEmptySet(1, 2, 3).containsSlice(NonEmptySet(2, 3)) // Result: true NonEmptySet(1, 2, 3).containsSlice(NonEmptySet(3, 4)) // Result: false NonEmptySet(-1, -2, 3, 4, 5).minBy(_.abs) // Result: -1
NonEmptySet does not currently define any methods corresponding to Seq methods that could result in
an empty Seq. However, an implicit converison from NonEmptySet to Set
is defined in the NonEmptySet companion object that will be applied if you attempt to call one of the missing methods. As a
result, you can invoke filter on an NonEmptySet, even though filter could result
in an empty sequence—but the result type will be Set instead of NonEmptySet:
NonEmptySet(1, 2, 3).filter(_ < 10) // Result: Set(1, 2, 3) NonEmptySet(1, 2, 3).filter(_ > 10) // Result: Set()
You can use NonEmptySets in for expressions. The result will be an NonEmptySet unless
you use a filter (an if clause). Because filters are desugared to invocations of filter, the
result type will switch to a Set at that point. Here are some examples:
scala> import org.scalactic.anyvals._
import org.scalactic.anyvals._
scala> for (i <- NonEmptySet(1, 2, 3)) yield i + 1
res0: org.scalactic.anyvals.NonEmptySet[Int] = NonEmptySet(2, 3, 4)
scala> for (i <- NonEmptySet(1, 2, 3) if i < 10) yield i + 1
res1: Set[Int] = Set(2, 3, 4)
scala> for {
| i <- NonEmptySet(1, 2, 3)
| j <- NonEmptySet('a', 'b', 'c')
| } yield (i, j)
res3: org.scalactic.anyvals.NonEmptySet[(Int, Char)] =
NonEmptySet((1,a), (1,b), (1,c), (2,a), (2,b), (2,c), (3,a), (3,b), (3,c))
scala> for {
| i <- NonEmptySet(1, 2, 3) if i < 10
| j <- NonEmptySet('a', 'b', 'c')
| } yield (i, j)
res6: Set[(Int, Char)] =
Set((1,a), (1,b), (1,c), (2,a), (2,b), (2,c), (3,a), (3,b), (3,c))
- Type parameters:
- T
the type of elements contained in this
NonEmptySet
- Companion:
- object
- Source:
- NonEmptySet.scala
Value members
Concrete methods
Returns a new NonEmptySet with the given element added.
Returns a new NonEmptySet with the given element added.
- Value parameters:
- element
the element to add to this
NonEmptySet
- Returns:
a new
NonEmptySetconsisting ofelementand all elements of thisNonEmptySet.- Source:
- NonEmptySet.scala
Returns a new NonEmptySet with the given element added.
Returns a new NonEmptySet with the given element added.
- Value parameters:
- elem1
the first element to add.
- elem2
the second element to add.
- elems
the remaining elements to add.
- Returns:
a new
NonEmptySetwith the given elements added, omitting duplicates.- Source:
- NonEmptySet.scala
Returns a new NonEmptySet containing the elements of this NonEmptySet followed by the elements of the passed NonEmptySet.
The element type of the resulting NonEmptySet is the most specific superclass encompassing the element types of this and the passed NonEmptySet.
Returns a new NonEmptySet containing the elements of this NonEmptySet followed by the elements of the passed NonEmptySet.
The element type of the resulting NonEmptySet is the most specific superclass encompassing the element types of this and the passed NonEmptySet.
- Type parameters:
- U
the element type of the returned
NonEmptySet
- Value parameters:
- other
the
NonEmptySetto append
- Returns:
a new
NonEmptySetthat contains all the elements of thisNonEmptySetfollowed by all elements ofother.- Source:
- NonEmptySet.scala
Returns a new NonEmptySet containing the elements of this NonEmptySet followed by the elements of the passed Every.
The element type of the resulting NonEmptySet is the most specific superclass encompassing the element types of this NonEmptySet and the passed Every.
Returns a new NonEmptySet containing the elements of this NonEmptySet followed by the elements of the passed Every.
The element type of the resulting NonEmptySet is the most specific superclass encompassing the element types of this NonEmptySet and the passed Every.
- Type parameters:
- U
the element type of the returned
NonEmptySet
- Value parameters:
- other
the
Everyto append
- Returns:
a new
NonEmptySetthat contains all the elements of thisNonEmptySetfollowed by all elements ofother.- Source:
- NonEmptySet.scala
Returns a new NonEmptySet containing the elements of this NonEmptySet followed by the elements of the passed GenTraversableOnce.
The element type of the resulting NonEmptySet is the most specific superclass encompassing the element types of this NonEmptySet
and the passed GenTraversableOnce.
Returns a new NonEmptySet containing the elements of this NonEmptySet followed by the elements of the passed GenTraversableOnce.
The element type of the resulting NonEmptySet is the most specific superclass encompassing the element types of this NonEmptySet
and the passed GenTraversableOnce.
- Value parameters:
- other
the
GenTraversableOnceto append
- Returns:
a new
NonEmptySetthat contains all the elements of thisNonEmptySetfollowed by all elements ofother.- Source:
- NonEmptySet.scala
Appends all elements of this NonEmptySet to a string builder. The written text will consist of a concatenation of the result of invoking toString
on of every element of this NonEmptySet, without any separator string.
Appends all elements of this NonEmptySet to a string builder. The written text will consist of a concatenation of the result of invoking toString
on of every element of this NonEmptySet, without any separator string.
- Value parameters:
- sb
the string builder to which elements will be appended
- Returns:
the string builder,
sb, to which elements were appended.- Source:
- NonEmptySet.scala
Appends all elements of this NonEmptySet to a string builder using a separator string. The written text will consist of a concatenation of the
result of invoking toString
on of every element of this NonEmptySet, separated by the string sep.
Appends all elements of this NonEmptySet to a string builder using a separator string. The written text will consist of a concatenation of the
result of invoking toString
on of every element of this NonEmptySet, separated by the string sep.
- Value parameters:
- sb
the string builder to which elements will be appended
- sep
the separator string
- Returns:
the string builder,
sb, to which elements were appended.- Source:
- NonEmptySet.scala
Appends all elements of this NonEmptySet to a string builder using start, end, and separator strings. The written text will consist of a concatenation of
the string start; the result of invoking toString on all elements of this NonEmptySet,
separated by the string sep; and the string end
Appends all elements of this NonEmptySet to a string builder using start, end, and separator strings. The written text will consist of a concatenation of
the string start; the result of invoking toString on all elements of this NonEmptySet,
separated by the string sep; and the string end
- Value parameters:
- sb
the string builder to which elements will be appended
- sep
the separator string
- start
the ending string
- Returns:
the string builder,
sb, to which elements were appended.- Source:
- NonEmptySet.scala
Check if an element exists at its index in the NonEmptySet.
Check if an element exists at its index in the NonEmptySet.
- Returns:
trueif a element exists inNonEmptySetat indexidx, wherefalseindicates the element at indexidxdoes not exist.- Source:
- NonEmptySet.scala
Finds the first element of this NonEmptySet for which the given partial function is defined, if any, and applies the partial function to it.
Finds the first element of this NonEmptySet for which the given partial function is defined, if any, and applies the partial function to it.
- Value parameters:
- pf
the partial function
- Returns:
an
Optioncontainingpfapplied to the first element for which it is defined, orNoneif the partial function was not defined for any element.- Source:
- NonEmptySet.scala
Indicates whether this NonEmptySet contains a given value as an element.
Indicates whether this NonEmptySet contains a given value as an element.
- Value parameters:
- elem
the element to look for
- Returns:
true if this
NonEmptySethas an element that is equal (as determined by==)toelem, false otherwise.- Source:
- NonEmptySet.scala
Copies values of this NonEmptySet to an array. Fills the given array arr with values of this NonEmptySet. Copying
will stop once either the end of the current NonEmptySet is reached, or the end of the array is reached.
Copies values of this NonEmptySet to an array. Fills the given array arr with values of this NonEmptySet. Copying
will stop once either the end of the current NonEmptySet is reached, or the end of the array is reached.
- Value parameters:
- arr
the array to fill
- Source:
- NonEmptySet.scala
Copies values of this NonEmptySet to an array. Fills the given array arr with values of this NonEmptySet, beginning at
index start. Copying will stop once either the end of the current NonEmptySet is reached, or the end of the array is reached.
Copies values of this NonEmptySet to an array. Fills the given array arr with values of this NonEmptySet, beginning at
index start. Copying will stop once either the end of the current NonEmptySet is reached, or the end of the array is reached.
- Value parameters:
- arr
the array to fill
- start
the starting index
- Source:
- NonEmptySet.scala
Copies values of this NonEmptySet to an array. Fills the given array arr with at most len elements of this NonEmptySet, beginning at
index start. Copying will stop once either the end of the current NonEmptySet is reached, the end of the array is reached, or
len elements have been copied.
Copies values of this NonEmptySet to an array. Fills the given array arr with at most len elements of this NonEmptySet, beginning at
index start. Copying will stop once either the end of the current NonEmptySet is reached, the end of the array is reached, or
len elements have been copied.
- Value parameters:
- arr
the array to fill
- len
the maximum number of elements to copy
- start
the starting index
- Source:
- NonEmptySet.scala
Copies all elements of this NonEmptySet to a buffer.
Copies all elements of this NonEmptySet to a buffer.
- Value parameters:
- buf
the buffer to which elements are copied
- Source:
- NonEmptySet.scala
Counts the number of elements in this NonEmptySet that satisfy a predicate.
Counts the number of elements in this NonEmptySet that satisfy a predicate.
- Value parameters:
- p
the predicate used to test elements.
- Returns:
the number of elements satisfying the predicate
p.- Source:
- NonEmptySet.scala
Indicates whether a predicate holds for at least one of the elements of this NonEmptySet.
Indicates whether a predicate holds for at least one of the elements of this NonEmptySet.
- Value parameters:
- p
the predicate used to test elements.
- Returns:
trueif the given predicatepholds for some of the elements of thisNonEmptySet, otherwisefalse.- Source:
- NonEmptySet.scala
Finds the first element of this NonEmptySet that satisfies the given predicate, if any.
Finds the first element of this NonEmptySet that satisfies the given predicate, if any.
- Value parameters:
- p
the predicate used to test elements
- Returns:
an
Somecontaining the first element in thisNonEmptySetthat satisfiesp, orNoneif none exists.- Source:
- NonEmptySet.scala
Builds a new NonEmptySet by applying a function to all elements of this NonEmptySet and using the elements of the resulting NonEmptySets.
Builds a new NonEmptySet by applying a function to all elements of this NonEmptySet and using the elements of the resulting NonEmptySets.
- Type parameters:
- U
the element type of the returned
NonEmptySet
- Value parameters:
- f
the function to apply to each element.
- Returns:
a new
NonEmptySetcontaining elements obtained by applying the given functionfto each element of thisNonEmptySetand concatenating the elements of resultingNonEmptySets.- Source:
- NonEmptySet.scala
Converts this NonEmptySet of NonEmptySets into a NonEmptySet
formed by the elements of the nested NonEmptySets.
Converts this NonEmptySet of NonEmptySets into a NonEmptySet
formed by the elements of the nested NonEmptySets.
Note: You cannot use this flatten method on a NonEmptySet that contains a GenTraversableOnces, because
if all the nested GenTraversableOnces were empty, you'd end up with an empty NonEmptySet.
- Returns:
a new
NonEmptySetresulting from concatenating all nestedNonEmptySets.- Source:
- NonEmptySet.scala
Folds the elements of this NonEmptySet using the specified associative binary operator.
Folds the elements of this NonEmptySet using the specified associative binary operator.
The order in which operations are performed on elements is unspecified and may be nondeterministic.
- Type parameters:
- U
a type parameter for the binary operator, a supertype of T.
- Value parameters:
- op
a binary operator that must be associative
- z
a neutral element for the fold operation; may be added to the result an arbitrary number of times, and must not change the result (e.g.,
Nilfor Set concatenation, 0 for addition, or 1 for multiplication.)
- Returns:
the result of applying fold operator
opbetween all the elements andz- Source:
- NonEmptySet.scala
Applies a binary operator to a start value and all elements of this NonEmptySet, going left to right.
Applies a binary operator to a start value and all elements of this NonEmptySet, going left to right.
- Type parameters:
- B
the result type of the binary operator.
- Value parameters:
- op
the binary operator.
- z
the start value.
- Returns:
the result of inserting
opbetween consecutive elements of thisNonEmptySet, going left to right, with the start value,z, on the left:op(...op(op(z, x_1), x_2), ..., x_n)
where x1, ..., xn are the elements of this
NonEmptySet.- Source:
- NonEmptySet.scala
Applies a binary operator to all elements of this NonEmptySet and a start value, going right to left.
Applies a binary operator to all elements of this NonEmptySet and a start value, going right to left.
- Type parameters:
- B
the result of the binary operator
- Value parameters:
- op
the binary operator
- z
the start value
- Returns:
the result of inserting
opbetween consecutive elements of thisNonEmptySet, going right to left, with the start value,z, on the right:op(x_1, op(x_2, ... op(x_n, z)...))
where x1, ..., xn are the elements of this
NonEmptySet.- Source:
- NonEmptySet.scala
Indicates whether a predicate holds for all elements of this NonEmptySet.
Indicates whether a predicate holds for all elements of this NonEmptySet.
- Value parameters:
- p
the predicate used to test elements.
- Returns:
trueif the given predicatepholds for all elements of thisNonEmptySet, otherwisefalse.- Source:
- NonEmptySet.scala
Applies a function f to all elements of this NonEmptySet.
Applies a function f to all elements of this NonEmptySet.
- Value parameters:
- f
the function that is applied for its side-effect to every element. The result of function
fis discarded.
- Source:
- NonEmptySet.scala
Partitions this NonEmptySet into a map of NonEmptySets according to some discriminator function.
Partitions this NonEmptySet into a map of NonEmptySets according to some discriminator function.
- Type parameters:
- K
the type of keys returned by the discriminator function.
- Value parameters:
- f
the discriminator function.
- Returns:
A map from keys to
NonEmptySets such that the following invariant holds:(NonEmptySet.toSet partition f)(k) = xs filter (x => f(x) == k)
That is, every key
kis bound to aNonEmptySetof those elementsxfor whichf(x)equalsk.- Source:
- NonEmptySet.scala
Partitions elements into fixed size NonEmptySets.
Partitions elements into fixed size NonEmptySets.
- Value parameters:
- size
the number of elements per group
- Returns:
An iterator producing
NonEmptySets of sizesize, except the last will be truncated if the elements don't divide evenly.- Source:
- NonEmptySet.scala
Returns true to indicate this NonEmptySet has a definite size, since all NonEmptySets are strict collections.
Returns true to indicate this NonEmptySet has a definite size, since all NonEmptySets are strict collections.
- Source:
- NonEmptySet.scala
Selects the first element of this NonEmptySet.
Selects the first element of this NonEmptySet.
- Returns:
the first element of this
NonEmptySet.- Source:
- NonEmptySet.scala
Selects the first element of this NonEmptySet and returns it wrapped in a Some.
Selects the first element of this NonEmptySet and returns it wrapped in a Some.
- Returns:
the first element of this
NonEmptySet, wrapped in aSome.- Source:
- NonEmptySet.scala
Returns false to indicate this NonEmptySet, like all NonEmptySets, is non-empty.
Returns false to indicate this NonEmptySet, like all NonEmptySets, is non-empty.
- Returns:
false
- Source:
- NonEmptySet.scala
Returns true to indicate this NonEmptySet, like all NonEmptySets, can be traversed repeatedly.
Returns true to indicate this NonEmptySet, like all NonEmptySets, can be traversed repeatedly.
- Returns:
true
- Source:
- NonEmptySet.scala
Creates and returns a new iterator over all elements contained in this NonEmptySet.
Creates and returns a new iterator over all elements contained in this NonEmptySet.
- Returns:
the new iterator
- Source:
- NonEmptySet.scala
Selects the last element of this NonEmptySet.
Selects the last element of this NonEmptySet.
- Returns:
the last element of this
NonEmptySet.- Source:
- NonEmptySet.scala
Returns the last element of this NonEmptySet, wrapped in a Some.
Returns the last element of this NonEmptySet, wrapped in a Some.
- Returns:
the last element, wrapped in a
Some.- Source:
- NonEmptySet.scala
Builds a new NonEmptySet by applying a function to all elements of this NonEmptySet.
Builds a new NonEmptySet by applying a function to all elements of this NonEmptySet.
- Type parameters:
- U
the element type of the returned
NonEmptySet.
- Value parameters:
- f
the function to apply to each element.
- Returns:
a new
NonEmptySetresulting from applying the given functionfto each element of thisNonEmptySetand collecting the results.- Source:
- NonEmptySet.scala
Finds the largest element.
Finds the largest element.
- Returns:
the largest element of this
NonEmptySet.- Source:
- NonEmptySet.scala
Finds the largest result after applying the given function to every element.
Finds the largest result after applying the given function to every element.
- Returns:
the largest result of applying the given function to every element of this
NonEmptySet.- Source:
- NonEmptySet.scala
Finds the smallest element.
Finds the smallest element.
- Returns:
the smallest element of this
NonEmptySet.- Source:
- NonEmptySet.scala
Finds the smallest result after applying the given function to every element.
Finds the smallest result after applying the given function to every element.
- Returns:
the smallest result of applying the given function to every element of this
NonEmptySet.- Source:
- NonEmptySet.scala
Displays all elements of this NonEmptySet in a string.
Displays all elements of this NonEmptySet in a string.
- Returns:
a string representation of this
NonEmptySet. In the resulting string, the result of invokingtoStringon all elements of thisNonEmptySetfollow each other without any separator string.- Source:
- NonEmptySet.scala
Displays all elements of this NonEmptySet in a string using a separator string.
Displays all elements of this NonEmptySet in a string using a separator string.
- Value parameters:
- sep
the separator string
- Returns:
a string representation of this
NonEmptySet. In the resulting string, the result of invokingtoStringon all elements of thisNonEmptySetare separated by the stringsep.- Source:
- NonEmptySet.scala
Displays all elements of this NonEmptySet in a string using start, end, and separator strings.
Displays all elements of this NonEmptySet in a string using start, end, and separator strings.
- Value parameters:
- end
the ending string.
- sep
the separator string.
- start
the starting string.
- Returns:
a string representation of this
NonEmptySet. The resulting string begins with the stringstartand ends with the stringend. Inside, In the resulting string, the result of invokingtoStringon all elements of thisNonEmptySetare separated by the stringsep.- Source:
- NonEmptySet.scala
Returns true to indicate this NonEmptySet, like all NonEmptySets, is non-empty.
Returns true to indicate this NonEmptySet, like all NonEmptySets, is non-empty.
- Returns:
true
- Source:
- NonEmptySet.scala
The result of multiplying all the elements of this NonEmptySet.
The result of multiplying all the elements of this NonEmptySet.
This method can be invoked for any NonEmptySet[T] for which an implicit Numeric[T] exists.
- Returns:
the product of all elements
- Source:
- NonEmptySet.scala
Reduces the elements of this NonEmptySet using the specified associative binary operator.
Reduces the elements of this NonEmptySet using the specified associative binary operator.
The order in which operations are performed on elements is unspecified and may be nondeterministic.
- Type parameters:
- U
a type parameter for the binary operator, a supertype of T.
- Value parameters:
- op
a binary operator that must be associative.
- Returns:
the result of applying reduce operator
opbetween all the elements of thisNonEmptySet.- Source:
- NonEmptySet.scala
Applies a binary operator to all elements of this NonEmptySet, going left to right.
Applies a binary operator to all elements of this NonEmptySet, going left to right.
- Type parameters:
- U
the result type of the binary operator.
- Value parameters:
- op
the binary operator.
- Returns:
the result of inserting
opbetween consecutive elements of thisNonEmptySet, going left to right:op(...op(op(x_1, x_2), x_3), ..., x_n)
where x1, ..., xn are the elements of this
NonEmptySet.- Source:
- NonEmptySet.scala
Applies a binary operator to all elements of this NonEmptySet, going left to right, returning the result in a Some.
Applies a binary operator to all elements of this NonEmptySet, going left to right, returning the result in a Some.
- Type parameters:
- U
the result type of the binary operator.
- Value parameters:
- op
the binary operator.
- Returns:
a
Somecontaining the result ofreduceLeft(op)- Source:
- NonEmptySet.scala
Applies a binary operator to all elements of this NonEmptySet, going right to left.
Applies a binary operator to all elements of this NonEmptySet, going right to left.
- Type parameters:
- U
the result of the binary operator
- Value parameters:
- op
the binary operator
- Returns:
the result of inserting
opbetween consecutive elements of thisNonEmptySet, going right to left:op(x_1, op(x_2, ... op(x_{n-1}, x_n)...))where x1, ..., xn are the elements of this
NonEmptySet.- Source:
- NonEmptySet.scala
Applies a binary operator to all elements of this NonEmptySet, going right to left, returning the result in a Some.
Applies a binary operator to all elements of this NonEmptySet, going right to left, returning the result in a Some.
- Type parameters:
- U
the result of the binary operator
- Value parameters:
- op
the binary operator
- Returns:
a
Somecontaining the result ofreduceRight(op)- Source:
- NonEmptySet.scala
Checks if the given GenIterable contains the same elements in the same order as this NonEmptySet.
Checks if the given GenIterable contains the same elements in the same order as this NonEmptySet.
- Value parameters:
- that
the
GenIterablewith which to compare
- Returns:
true, if both thisNonEmptySetand the givenGenIterablecontain the same elements in the same order,falseotherwise.- Source:
- NonEmptySet.scala
Checks if the given Every contains the same elements in the same order as this NonEmptySet.
Checks if the given Every contains the same elements in the same order as this NonEmptySet.
- Value parameters:
- that
the
Everywith which to compare
- Returns:
true, if both this and the givenEverycontain the same elements in the same order,falseotherwise.- Source:
- NonEmptySet.scala
Checks if the given NonEmptySet contains the same elements in the same order as this NonEmptySet.
Checks if the given NonEmptySet contains the same elements in the same order as this NonEmptySet.
- Value parameters:
- that
the
NonEmptySetwith which to compare
- Returns:
true, if both this and the givenNonEmptySetcontain the same elements in the same order,falseotherwise.- Source:
- NonEmptySet.scala
Computes a prefix scan of the elements of this NonEmptySet.
Computes a prefix scan of the elements of this NonEmptySet.
Note: The neutral element z may be applied more than once.
Here are some examples:
NonEmptySet(1, 2, 3).scan(0)(_ + _) == NonEmptySet(0, 1, 3, 6)
NonEmptySet(1, 2, 3).scan("z")(_ + _.toString) == NonEmptySet("z", "z1", "z12", "z123")
- Type parameters:
- U
a type parameter for the binary operator, a supertype of T, and the type of the resulting
NonEmptySet.
- Value parameters:
- op
a binary operator that must be associative
- z
a neutral element for the scan operation; may be added to the result an arbitrary number of times, and must not change the result (e.g.,
Nilfor Set concatenation, 0 for addition, or 1 for multiplication.)
- Returns:
a new
NonEmptySetcontaining the prefix scan of the elements in thisNonEmptySet- Source:
- NonEmptySet.scala
Produces a NonEmptySet containing cumulative results of applying the operator going left to right.
Produces a NonEmptySet containing cumulative results of applying the operator going left to right.
Here are some examples:
NonEmptySet(1, 2, 3).scanLeft(0)(_ + _) == NonEmptySet(0, 1, 3, 6)
NonEmptySet(1, 2, 3).scanLeft("z")(_ + _) == NonEmptySet("z", "z1", "z12", "z123")
- Type parameters:
- B
the result type of the binary operator and type of the resulting
NonEmptySet
- Value parameters:
- op
the binary operator.
- z
the start value.
- Returns:
a new
NonEmptySetcontaining the intermediate results of insertingopbetween consecutive elements of thisNonEmptySet, going left to right, with the start value,z, on the left.- Source:
- NonEmptySet.scala
Produces a NonEmptySet containing cumulative results of applying the operator going right to left.
Produces a NonEmptySet containing cumulative results of applying the operator going right to left.
Here are some examples:
NonEmptySet(1, 2, 3).scanRight(0)(_ + _) == NonEmptySet(6, 5, 3, 0)
NonEmptySet(1, 2, 3).scanRight("z")(_ + _) == NonEmptySet("123z", "23z", "3z", "z")
- Type parameters:
- B
the result of the binary operator and type of the resulting
NonEmptySet
- Value parameters:
- op
the binary operator
- z
the start value
- Returns:
a new
NonEmptySetcontaining the intermediate results of insertingopbetween consecutive elements of thisNonEmptySet, going right to left, with the start value,z, on the right.- Source:
- NonEmptySet.scala
The size of this NonEmptySet.
The size of this NonEmptySet.
Note: length and size yield the same result, which will be >= 1.
- Returns:
the number of elements in this
NonEmptySet.- Source:
- NonEmptySet.scala
Groups elements in fixed size blocks by passing a “sliding window” over them (as opposed to partitioning them, as is done in grouped.)
Groups elements in fixed size blocks by passing a “sliding window” over them (as opposed to partitioning them, as is done in grouped.)
- Value parameters:
- size
the number of elements per group
- Returns:
an iterator producing
NonEmptySets of sizesize, except the last and the only element will be truncated if there are fewer elements thansize.- Source:
- NonEmptySet.scala
Groups elements in fixed size blocks by passing a “sliding window” over them (as opposed to partitioning them, as is done in grouped.),
moving the sliding window by a given step each time.
Groups elements in fixed size blocks by passing a “sliding window” over them (as opposed to partitioning them, as is done in grouped.),
moving the sliding window by a given step each time.
- Value parameters:
- size
the number of elements per group
- step
the distance between the first elements of successive groups
- Returns:
an iterator producing
NonEmptySets of sizesize, except the last and the only element will be truncated if there are fewer elements thansize.- Source:
- NonEmptySet.scala
Returns "NonEmptySet", the prefix of this object's toString representation.
Returns "NonEmptySet", the prefix of this object's toString representation.
- Returns:
the string
"NonEmptySet"- Source:
- NonEmptySet.scala
The result of summing all the elements of this NonEmptySet.
The result of summing all the elements of this NonEmptySet.
This method can be invoked for any NonEmptySet[T] for which an implicit Numeric[T] exists.
- Returns:
the sum of all elements
- Source:
- NonEmptySet.scala
Converts this NonEmptySet into a collection of type Col by copying all elements.
Converts this NonEmptySet into a collection of type Col by copying all elements.
- Type parameters:
- Col
the collection type to build.
- Returns:
a new collection containing all elements of this
NonEmptySet.- Source:
- NonEmptySet.scala
Converts this NonEmptySet to an array.
Converts this NonEmptySet to an array.
- Returns:
an array containing all elements of this
NonEmptySet. AClassTagmust be available for the element type of thisNonEmptySet.- Source:
- NonEmptySet.scala
Converts this NonEmptySet to a mutable buffer.
Converts this NonEmptySet to a mutable buffer.
- Returns:
a buffer containing all elements of this
NonEmptySet.- Source:
- NonEmptySet.scala
Converts this NonEmptySet to an immutable IndexedSeq.
Converts this NonEmptySet to an immutable IndexedSeq.
- Returns:
an immutable
IndexedSeqcontaining all elements of thisNonEmptySet.- Source:
- NonEmptySet.scala
Converts this NonEmptySet to an iterable collection.
Converts this NonEmptySet to an iterable collection.
- Returns:
an
Iterablecontaining all elements of thisNonEmptySet.- Source:
- NonEmptySet.scala
Returns an Iterator over the elements in this NonEmptySet.
Returns an Iterator over the elements in this NonEmptySet.
- Returns:
an
Iteratorcontaining all elements of thisNonEmptySet.- Source:
- NonEmptySet.scala
Converts this NonEmptySet to a set.
Converts this NonEmptySet to a set.
- Returns:
a set containing all elements of this
NonEmptySet.- Source:
- NonEmptySet.scala
Converts this NonEmptySet to a map.
Converts this NonEmptySet to a map.
This method is unavailable unless the elements are members of Tuple2, each ((K, V)) becoming a key-value pair
in the map. Duplicate keys will be overwritten by later keys.
- Returns:
a map of type
immutable.Map[K, V]containing all key/value pairs of type(K, V)of thisNonEmptySet.- Source:
- NonEmptySet.scala
Converts this NonEmptySet to an immutable IndexedSeq.
Converts this NonEmptySet to an immutable IndexedSeq.
- Returns:
an immutable
IndexedSeqcontaining all elements of thisNonEmptySet.- Source:
- NonEmptySet.scala
Converts this NonEmptySet to a stream.
Converts this NonEmptySet to a stream.
- Returns:
a stream containing all elements of this
NonEmptySet.- Source:
- NonEmptySet.scala
Returns a string representation of this NonEmptySet.
Returns a string representation of this NonEmptySet.
- Returns:
the string
"NonEmptySet"followed by the result of invokingtoStringon thisNonEmptySet's elements, surrounded by parentheses.- Definition Classes
- Any
- Source:
- NonEmptySet.scala
Converts this NonEmptySet to a Vector.
Converts this NonEmptySet to a Vector.
- Returns:
a
Vectorcontaining all elements of thisNonEmptySet.- Source:
- NonEmptySet.scala
Produces a new NonEmptySet that contains all elements of this NonEmptySet and also all elements of a given Every.
Produces a new NonEmptySet that contains all elements of this NonEmptySet and also all elements of a given Every.
NonEmptySetX union everyY is equivalent to NonEmptySetX ++ everyY.
Another way to express this is that NonEmptySetX union everyY computes the order-presevring multi-set union
of NonEmptySetX and everyY. This union method is hence a counter-part of diff and intersect that
also work on multi-sets.
- Value parameters:
- that
the
Everyto add.
- Returns:
a new
NonEmptySetthat contains all elements of thisNonEmptySetfollowed by all elements ofthatEvery.- Source:
- NonEmptySet.scala
Produces a new NonEmptySet that contains all elements of this NonEmptySet and also all elements of a given NonEmptySet.
Produces a new NonEmptySet that contains all elements of this NonEmptySet and also all elements of a given NonEmptySet.
NonEmptySetX union NonEmptySetY is equivalent to NonEmptySetX ++ NonEmptySetY.
Another way to express this is that NonEmptySetX union NonEmptySetY computes the order-presevring multi-set union
of NonEmptySetX and NonEmptySetY. This union method is hence a counter-part of diff and intersect that
also work on multi-sets.
- Value parameters:
- that
the
NonEmptySetto add.
- Returns:
a new
NonEmptySetthat contains all elements of thisNonEmptySetfollowed by all elements ofthat.- Source:
- NonEmptySet.scala
Produces a new NonEmptySet that contains all elements of this NonEmptySet and also all elements of a given GenSeq.
Produces a new NonEmptySet that contains all elements of this NonEmptySet and also all elements of a given GenSeq.
NonEmptySetX union ys is equivalent to NonEmptySetX ++ ys.
Another way to express this is that NonEmptySetX union ys computes the order-presevring multi-set union
of NonEmptySetX and ys. This union method is hence a counter-part of diff and intersect that
also work on multi-sets.
- Value parameters:
- that
the
GenSetto add.
- Returns:
a new
NonEmptySetthat contains all elements of thisNonEmptySetfollowed by all elements ofthatGenSeq.- Source:
- NonEmptySet.scala
Converts this NonEmptySet of pairs into two NonEmptySets of the first and second half of each pair.
Converts this NonEmptySet of pairs into two NonEmptySets of the first and second half of each pair.
- Type parameters:
- L
the type of the first half of the element pairs
- R
the type of the second half of the element pairs
- Value parameters:
- asPair
an implicit conversion that asserts that the element type of this
NonEmptySetis a pair.
- Returns:
a pair of
NonEmptySets, containing the first and second half, respectively, of each element pair of thisNonEmptySet.- Source:
- NonEmptySet.scala
Converts this NonEmptySet of triples into three NonEmptySets of the first, second, and and third element of each triple.
Converts this NonEmptySet of triples into three NonEmptySets of the first, second, and and third element of each triple.
- Type parameters:
- L
the type of the first member of the element triples
- M
the type of the second member of the element triples
- R
the type of the third member of the element triples
- Value parameters:
- asTriple
an implicit conversion that asserts that the element type of this
NonEmptySetis a triple.
- Returns:
a triple of
NonEmptySets, containing the first, second, and third member, respectively, of each element triple of thisNonEmptySet.- Source:
- NonEmptySet.scala
Returns a NonEmptySet formed from this NonEmptySet and an iterable collection by combining corresponding
elements in pairs. If one of the two collections is shorter than the other, placeholder elements will be used to extend the
shorter collection to the length of the longer.
Returns a NonEmptySet formed from this NonEmptySet and an iterable collection by combining corresponding
elements in pairs. If one of the two collections is shorter than the other, placeholder elements will be used to extend the
shorter collection to the length of the longer.
- Value parameters:
- other
the
Iterableproviding the second half of each result pair- otherElem
the element to be used to fill up the result if
thatIterableis shorter than thisNonEmptySet.- thisElem
the element to be used to fill up the result if this
NonEmptySetis shorter thanthatIterable.
- Returns:
a new
NonEmptySetcontaining pairs consisting of corresponding elements of thisNonEmptySetandthat. The length of the returned collection is the maximum of the lengths of thisNonEmptySetandthat. If thisNonEmptySetis shorter thanthat,thisElemvalues are used to pad the result. Ifthatis shorter than thisNonEmptySet,thatElemvalues are used to pad the result.- Source:
- NonEmptySet.scala
Zips this NonEmptySet with its indices.
Zips this NonEmptySet with its indices.
- Returns:
A new
NonEmptySetcontaining pairs consisting of all elements of thisNonEmptySetpaired with their index. Indices start at 0.- Source:
- NonEmptySet.scala