We’ve provided the completed Design Recipe for is-cat as a model to help you think through the Design Recipe for is-rabbit.

Define a function called is-cat, which consumes a Row of the animals table and computes whether the animal is a cat. HINT: use predefined rows like cat-row to make your examples easier!

Contract and Purpose Statement

Every contract has three parts…​

is-cat::Row->Boolean

Consumes an animal, and checks whether the species == "cat"

Examples

Write some examples, then circle and label what changes…​

examples:

is-cat (cat-row) is cat-row["species"] == "cat"

is-cat (rabbit-row) is rabbit-row["species"] == "cat"

end

Definition

Write the definition, giving variable names to all your input values…​

fun is-cat(r):

r["species"] == "cat"

end

Define a function called is-rabbit, which consumes a Row of the animals table and computes whether the animal is a lizard. HINT: use predefined rows like rabbit-row to make your examples easier!

Contract and Purpose Statement

Every contract has three parts…​

_________::___->_______

_

Examples

Write some examples, then circle and label what changes…​

examples:

_________ (__________) is _________________________________

_________ (__________) is _________________________________

end

Definition

Write the definition, giving variable names to all your input values…​

fun _________(_):

________________________

end

Add is-rabbit to your Putting it All Together Starter File.

Practice using filter: Define a new table called cats that only includes the cat rows.

These materials were developed partly through support of the National Science Foundation, (awards 1042210, 1535276, 1648684, 1738598, 2031479, and 1501927). CCbadge Bootstrap by the Bootstrap Community is licensed under a Creative Commons 4.0 Unported License. This license does not grant permission to run training or professional development. Offering training or professional development with materials substantially derived from Bootstrap must be approved in writing by a Bootstrap Director. Permissions beyond the scope of this license, such as to run training, may be available by contacting contact@BootstrapWorld.org.