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 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.
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 when using keep
. This is where the item from the list goes each time the question is asked.
between?
, divisible?
, even?
, and perhaps also integer?
) from your project in Unit 2 Lab 3 Page 1: What is a Predicate? and then import them into the new project and save the new project. To review how to import and export blocks you may wish to revisit Unit 2 Lab 1 Page 4: Importing Greet Player into Another Program .keep
. Discuss and then explain in writing what these expressions are doing.for
block you have seen in Unit 1 Lab 3 Page 6: Looping with a Counter, keep
isn't installed automatically. It has already been added to this project, but in other projects, you'll need to select "Import tools" from the File menu to access the keep
block. 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.
initialize lists
, and then use your new predicates together with keep
to answer these questions:
integer?
predicate, use your new predicates together with keep
to determine how many numbers in the numbers list are: