Fuzion Logo
fuzion-lang.dev — The Fuzion Language Portal
JavaScript seems to be disabled. Functionality is limited.

operators_set.fz


# This file is part of the Fuzion language implementation.
#
# The Fuzion language implementation is free software: you can redistribute it
# and/or modify it under the terms of the GNU General Public License as published
# by the Free Software Foundation, version 3 of the License.
#
# The Fuzion language implementation is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License along with The
# Fuzion language implementation.  If not, see <https://www.gnu.org/licenses/>.


# -----------------------------------------------------------------------
#
#  Tokiwa Software GmbH, Germany
#
#  Source code of Fuzion standard library set operators
#
#  Author: Fridtjof Siebert (siebert@tokiwa.software)
#
# -----------------------------------------------------------------------


# is `a` contained in `Set` `s`?
#
# This should usually be called using type inference as in
#
#     my_set := set_of ["A","B","C"]
#     say <| "B" ? my_set
#     say <| "D" ? my_set
#
public infix ? (T type : property.equatable,
                a T,
                s container.Set T) bool
=>
  s.contains a


# is `a` not contained in `Set` `s`?
#
# This should usually be called using type inference as in
#
#     my_set := set_of ["A","B","C"]
#     say <| "B" ? my_set
#     say <| "D" ? my_set
#
public infix ? (T type : property.equatable,
                a T,
                s container.Set T) bool
=>
  !(s.contains a)

last changed: 2026-09-23