Check whether a set contains a value.

set-membership A set records whether a value is present. It is useful when only membership matters.

Set Membership

word
SetMembership.scala
Replay: real traced execution (multi-file project)
object Main {
  def main(args: Array[String]): Unit = {
    val word = "api"
    val allowed = Set("api", "cli")
    val present = allowed.contains(word)
    val label = if (present) "allowed" else "blocked"

    println("word=" + word)
    println("present=" + present)
    println("label=" + label)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val word = "cli"
    val allowed = Set("api", "cli")
    val present = allowed.contains(word)
    val label = if (present) "allowed" else "blocked"

    println("word=" + word)
    println("present=" + present)
    println("label=" + label)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val word = "web"
    val allowed = Set("api", "cli")
    val present = allowed.contains(word)
    val label = if (present) "allowed" else "blocked"

    println("word=" + word)
    println("present=" + present)
    println("label=" + label)
  }
}
  1. word ← api, allowed ← Set(api, cli), present ← true, label ← allowed

    1object Main {2  def main(args: Array[String]): Unit = {3    val word→ api = "api" //@word="cli", "web"4    val allowed→ Set(api, cli) = Set("api", "cli")5    val present→ true = allowedSet(api, cli).contains(wordapi)6    val label→ allowed = if (presenttrue) "allowed" else "blocked"78    println("word=" + wordapi)9    println("present=" + presenttrue)10    println("label=" + labelallowed)11  }12}
    outputword=api
    present=true
    label=allowed
  1. word ← cli, allowed ← Set(api, cli), present ← true, label ← allowed

    1object Main {2  def main(args: Array[String]): Unit = {3    val word→ cli = "cli"4    val allowed→ Set(api, cli) = Set("api", "cli")5    val present→ true = allowedSet(api, cli).contains(wordcli)6    val label→ allowed = if (presenttrue) "allowed" else "blocked"78    println("word=" + wordcli)9    println("present=" + presenttrue)10    println("label=" + labelallowed)11  }12}
    outputword=cli
    present=true
    label=allowed
  1. word ← web, allowed ← Set(api, cli), present ← false, label ← blocked

    1object Main {2  def main(args: Array[String]): Unit = {3    val word→ web = "web"4    val allowed→ Set(api, cli) = Set("api", "cli")5    val present→ false = allowedSet(api, cli).contains(wordweb)6    val label→ blocked = if (presentfalse) "allowed" else "blocked"78    println("word=" + wordweb)9    println("present=" + presentfalse)10    println("label=" + labelblocked)11  }12}
    outputword=web
    present=false
    label=blocked

Check Membership

  1. The allowed set contains api and cli.
  2. word is api.
  3. contains(word) returns true.
  4. The label becomes allowed. | Word | Present? | Label | | --- | --- | --- | | api | true | allowed | | web | false | blocked |

Exercise: SetMembership.scala

Check whether a word is in an allowed set and print the membership label