~= (complement assign) operator

The right-associative, binary infix ~= operator is used to compute the complement of its left-hand operand in its right-hand operand, assigning the result to the left-hand operand.

Usage

void m<Dog>(Set<Dog> dogs, Set<Dog> blackDogs) 
  given Dog satisfies Object {
    variable Set<Dog> nonBlackDogs = dogs;
    nonBlackDogs ~= blackDogs;
}

Description

Definition

The ~ operator is defined as follows:

lhs = lhs ~ rhs

See the language specification for more details.

Polymorphism

The ~= operator is polymorphic.

The ~ in the definition is the complement operator which depends on the Set interface.

Type

The result type of the ~= operator is a Set with the same element type as the left hand operand's element type.

See also