Keep
ing Items from a ListOn this page, you will use predicates with the keep
block to keep items in a list that have specific characteristics.
As you know, predicates can be used with conditionals to decide when to do something; they can also be used with keep
to decide which things to keep. The block takes a list and a predicate as input, and it reports a new list keeping only the items from the input list that make the condition described by the predicate true.
For example, the following expression will find words from the words list whose first letter is v. The blank input slot is where each item of the list goes to decide if it will be kept.
letter
is the index.
You write the predicate that does the checking, and keep
applies the predicate to each item in the input list and then reports the list of items that make your predicate true
.
Note that the blank input slot in the predicate is required; this is where each item from the list goes as it is checked by the predicate.
letter
block in the palette looks like The first example keeps inputs of a certain length; every word in the list is asked whether its length is 5, and only those with five letters are reported. The second example keeps inputs that are not numbers; every item in this list is asked "Is this item not a number?" and only the elements that are not numbers are reported.
There are two length
blocks in Snap!. One () is designed for strings, and the other (
) is designed for lists.
initialize list
. Then use keep
to answer these questions: