Start learning free

LESSON 238 OF 677 · SETS

Removing from a Set and Looping Over It in Scala

Lesson

TL ; DR:

-= x takes x out of a mutable set. A for loop visits every value once, in no fixed order.


val colors = scala.collection.mutable.Set("red", "blue", "green")
colors -= "blue"
colors -= "pink"                // not in it, nothing happens

for (color <- colors) {
    println(color)              // red and green, in any order
}


Full lesson:

s -= x removes x from the mutable set s. If x isn't in it, nothing happens.

for (x <- s) visits each value of the set once. The order isn't fixed. It may differ from the order you added the values in.

So loop over a set when the order doesn't matter. A total, a count and a check are fine.


Your task

In a word game, the set found holds the words a player found. The words "qqq" and "zzz" aren't allowed. Remove both from found.

The player never found "zzz", so removing it changes nothing.

Then add up the points. A word scores one point per letter. Loop over found and add each word's length to score.

The code already prints how many words are left, and the points.

Expected output:

4 words
14 points
STEP 1 OF 3
    Ctrl + Enter to check