Package

algebra

Permalink

package algebra

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. algebra
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. trait Band[A] extends Semigroup[A]

    Permalink

    Bands are semigroups whose operation (i.e.

    Bands are semigroups whose operation (i.e. combine) is also idempotent.

  2. trait BoundedSemilattice[A] extends Semilattice[A] with CommutativeMonoid[A]

    Permalink
  3. trait CommutativeGroup[A] extends Group[A] with CommutativeMonoid[A]

    Permalink

    An abelian group is a group whose operation is commutative.

  4. trait CommutativeMonoid[A] extends Monoid[A] with CommutativeSemigroup[A]

    Permalink

    CommutativeMonoid represents a commutative monoid.

    CommutativeMonoid represents a commutative monoid.

    A monoid is commutative if for all x and y, x |+| y === y |+| x.

  5. trait CommutativeSemigroup[A] extends Semigroup[A]

    Permalink

    CommutativeSemigroup represents a commutative semigroup.

    CommutativeSemigroup represents a commutative semigroup.

    A semigroup is commutative if for all x and y, x |+| y === y |+| x.

  6. trait Eq[A] extends Serializable

    Permalink

    A type class used to determine equality between 2 instances of the same type.

    A type class used to determine equality between 2 instances of the same type. Any 2 instances x and y are equal if eqv(x, y) is true. Moreover, eqv should form an equivalence relation.

  7. trait EqFunctions extends AnyRef

    Permalink
  8. trait Group[A] extends Monoid[A]

    Permalink

    A group is a monoid where each element has an inverse.

  9. trait GroupFunctions[G[T] <: Group[T]] extends MonoidFunctions[Group]

    Permalink
  10. trait Monoid[A] extends Semigroup[A]

    Permalink

    A monoid is a semigroup with an identity.

    A monoid is a semigroup with an identity. A monoid is a specialization of a semigroup, so its operation must be associative. Additionally, combine(x, empty) == combine(empty, x) == x. For example, if we have Monoid[String], with combine as string concatenation, then empty = "".

  11. trait MonoidFunctions[M[T] <: Monoid[T]] extends SemigroupFunctions[M]

    Permalink
  12. trait Order[A] extends PartialOrder[A]

    Permalink

    The Order type class is used to define a total ordering on some type A.

    The Order type class is used to define a total ordering on some type A. An order is defined by a relation <=, which obeys the following laws:

    - either x <= y or y <= x (totality) - if x <= y and y <= x, then x == y (antisymmetry) - if x <= y and y <= z, then x <= z (transitivity)

    The truth table for compare is defined as follows:

    x <= y x >= y Int true true = 0 (corresponds to x == y) true false < 0 (corresponds to x < y) false true > 0 (corresponds to x > y)

    By the totality law, x <= y and y <= x cannot be both false.

  13. trait OrderFunctions extends AnyRef

    Permalink
  14. trait PartialOrder[A] extends Eq[A]

    Permalink

    The PartialOrder type class is used to define a partial ordering on some type A.

    The PartialOrder type class is used to define a partial ordering on some type A.

    A partial order is defined by a relation <=, which obeys the following laws:

    - x <= x (reflexivity) - if x <= y and y <= x, then x = y (anti-symmetry) - if x <= y and y <= z, then x <= z (transitivity)

    To compute both <= and >= at the same time, we use a Double number to encode the result of the comparisons x <= y and x >= y. The truth table is defined as follows:

    x <= y x >= y Double true true = 0.0 (corresponds to x = y) false false = NaN (x and y cannot be compared) true false = -1.0 (corresponds to x < y) false true = 1.0 (corresponds to x > y)

  15. trait PartialOrderFunctions extends AnyRef

    Permalink
  16. sealed trait Priority[+P, +F] extends AnyRef

    Permalink

    Priority is a type class for prioritized implicit search.

    Priority is a type class for prioritized implicit search.

    This type class will attempt to provide an implicit instance of P (the preferred type). If that type is not available it will fallback to F (the fallback type). If neither type is available then a Priority[P, F] instance will not be available.

    This type can be useful for problems where multiple algorithms can be used, depending on the type classes available.

  17. trait Semigroup[A] extends Serializable

    Permalink

    A semigroup is any set A with an associative operation (combine).

  18. trait SemigroupFunctions[S[T] <: Semigroup[T]] extends AnyRef

    Permalink
  19. trait Semilattice[A] extends Band[A] with CommutativeSemigroup[A]

    Permalink

    Semilattices are commutative semigroups whose operation (i.e.

    Semilattices are commutative semigroups whose operation (i.e. combine) is also idempotent.

Inherited from AnyRef

Inherited from Any

Ungrouped