Referenced from lesson Table Methods

You have the following functions defined below (read them carefully!):

fun lookup-fixed(animal): animal["fixed"]              	  end
fun is-dog(animal):    	animal["species"] == "dog"        end
fun is-old(animal):    	animal["age"] > 10                end
fun label(animal):     	text(animal["name"], 20, "red")   end

The table t below represents four animals from the shelter:

name sex age fixed species pounds

"Toggle"

"female"

12

true

"dog"

48

"Fritz"

"male"

4

false

"dog"

92

"Nori"

"female"

6

true

"dog"

35.3

"Sunflower"

"female"

2

false

cat

51.6

Below are a list of expressions that use table methods. What table do we get, after evaluating each one? Match each expression (left) to the table we get (right).

t.order-by("age", true)

1

A

Produces a table with Toggle, Fritz, and Nori - but not Sunflower.

t.order-by("pounds", false)

2

B

Produces a table of all four animals, sorted youngest-to-oldest

t.build-column("sticker", label)

3

C

Produces a table, with only Toggle.

t.filter(is-old)

4

D

Produces an identical table with an extra column called "dog", whose values are true, true, true, false

t.filter(lookup-fixed)

5

E

Produces a table containing only Nori and Toggle.

t.filter(is-dog)

6

F

Produces a table with all four animals, sorted from heaviest to lightest.

t.build-column("dog", is-dog)

7

G

Won’t run: will produce an error

t.filter(label)

8

H

Produces an identical table with an extra column called "sticker", whose values are images

These materials were developed partly through support of the National Science Foundation, (awards 1042210, 1535276, 1648684, and 1738598). CCbadge Bootstrap:Data Science by Emmanuel Schanzer, Nancy Pfenning, Emma Youndtsmith, Jennifer Poole, Shriram Krishnamurthi, Joe Politz, Ben Lerner, Flannery Denny, and Dorai Sitaram with help from Eric Allatta and Joy Straub is licensed under a Creative Commons 4.0 Unported License. Based on a work at www.BootstrapWorld.org. Permissions beyond the scope of this license may be available by contacting schanzer@BootstrapWorld.org.