else, is “Any,” meaning that this input slot is meant to accept any value of any type. If the size input in your
block should be an oval-shaped numeric slot rather than a generic rectangle, click “Number.”
The arrangement of the input types is systematic. As the pictures on this and the next page show, each row of
types is a category, and parts of each column form a category. Understanding the arrangement will make it a
little easier to find the type you want.
The second row of input types contains the ones found in Scratch: Number, Any, and Boolean. (The reason
these are in the second row rather than the ﬁrst
will become clear when we look at the column arrangement.)
row contains the new Snap! types other than procedures: Object, Text, and List. The last two rows are
the types related to procedures, discussed more fully below.
The List type is used for ﬁrst
class lists, discussed in Section IV above. The red rectangles inside the input slot
are meant to resemble the appearance of lists as Snap! displays them on the stage: each element in a red
The Object type is reserved for ﬁrst
class sprites, coming in Snap! 4.1.
The Text type is really just a variant form of the Any type, using a shape that suggests a text input.
Although the procedure types are discussed more fully later, they are the key to understanding the column
arrangement in the input types. Like Scratch, Snap! has three block shapes: jigsaw-piece for command blocks,
oval for reporters, and hexagonal for predicates. (A predicate is a reporter that always reports true or false.) In
Snap! these blocks are ﬁrst
class data; an input to a block can be of Command type, Reporter type, or Predicate
type. Each of these types is directly below the type of value that that kind of block reports, except for
Commands, which don’t report a value at all. Thus, oval Reporters are related to the Any type, while
hexagonal Predicates are related to the Boolean (true or false) type.
In Scratch, every block that takes a Text-type input has a default value that makes the rectangles for text wider than tall. The blocks
that aren’t speciﬁcally about text either are of Number type or have no default value, so those rectangles are taller than wide. At ﬁrst
we thought that Text was a separate type that always had a wide input slot; it turns out that this isn’t true in Scratch (delete the default
text and the rectangle narrows), but we thought it a good idea anyway, so we allow Text-shaped boxes even for empty input slots.
(This is why Text comes just above Any in the input type selection box.)