[Current] [News] [Glance] [Discussions] [Instructions] [Search] [Links] [Handouts] [Outlines] [Readings] [Labs] [Homeworks] [Quizzes] [Exams] [Examples] [Fall2000.01] [Spring2000]
You may want to refer to the corresponding reading as you work on this lab.
cons
es
list
procedure
cdr
Start DrScheme
Call the cons
procedure to create a list that has the number 1
as its first and only element. The result of your call should be
(1)
.
cons
es(cons 'alpha (cons 'beta (cons 'gamma (cons 'delta null))))
b. Check your answer by asking DrScheme to evaluate this expression.
list
procedure
Start Scheme and call the procedure list
, supplying the
numerals 17
and 43
as operands. Describe the
value returned by the procedure.
a. How would you call the list
procedure to create a list
containing the symbols alpha
, beta
, and
gamma
, in that order?
b. Verify your answer by entering the code in DrScheme.
How would you invoke the list
procedure to create an empty
list?
Determine by experiment whether it is possible to create a list in which the same element occurs more than once?
cdr
a. What is the cdr
of a one-element list?
b. Verify your answer by experimentation.
It makes no sense to apply the car
and cdr
procedures to an empty list, because there's no way to split off the
``first element'' of a list that has no elements. What happens if you try
it anyway? Find out by having DrScheme evaluate a deliberately incorrect
procedure call.
a. Does it make sense to apply car
and cdr
to
values other than lists? Why or why not?
b. Determine what happens if you apply these procedures to symbolic values and numeric values.
a. Create the list (e)
b. Create the list (d (e))
c. Create the lsit (b c)
d. Create the list (a (b c) (d (e)))
Use Scheme to give the name Greek-letters
to the list
constructed by the expression (list 'alpha 'beta (list 'gamma-1
'gamma-2) 'delta)
. Then call the length
procedure to
confirm that it has four elements.
Determine the length of the empty list.
a. Create a list of length 5. I don't care what's in the list.
b. Check your answer by having Scheme compute the length of that list.
a. Create the list (a (b c) (d (e)))
b. What do you think the length of this list should be?
c. Experimentally determine the length of this list.
d. Explain the result.
Use Scheme to compute the reversal of the list whose elements are the
symbols senior
, junior
, sophomore
,
and freshling
, in that order.
a. If a list has another list as one of its elements, should
reverse
reverse that inner list as well as the outer one?
b. Find out by experiment what Scheme does.
Use Scheme to find the result of stringing together a list with the symbols
alpha
and beta
as its elements and a list with
the numbers 1, 2, and 3 as its elements. How many elements does the
resulting list have?
a. Invoke the procedure list
, applying it to the two lists that
you strung together in the previous exercise: a list with the symbols
alpha
and beta
as its elements and a list with
the numbers 1, 2, and 3 as its elements.
b. How many elements does the resulting list have?
c. The answer to this question is different from the answer to the question at the end of the previous exercise -- why?
a. Write a call to the procedure cons
, applying it to our
favorite two lists: a list with the symbols alpha
and
beta
as its elements and a list with the numbers 1, 2, and 3
as its elements.
b. How many elements does the resulting list have?
c. Why is the answer to this question different from the answers to the questions at the end of the previous two exercises.
Write a call to the list-ref
procedure that will extract the
fourth element of the list (38 72 apple -1/3 sample)
--
namely, the number -1/3.
Quit DrScheme and log out of the workstation.
Today's lab currently lacks notes.
2 Septemer 1997 (John Stone)
31 March 2000 (John Stone)
Friday, 1 September 2000 (Samuel A. Rebelsky)
[Current] [News] [Glance] [Discussions] [Instructions] [Search] [Links] [Handouts] [Outlines] [Readings] [Labs] [Homeworks] [Quizzes] [Exams] [Examples] [Fall2000.01] [Spring2000]
Disclaimer Often, these pages were created "on the fly" with little, if any, proofreading. Any or all of the information on the pages may be incorrect. Please contact me if you notice errors.
This page may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2000F/Labs/lists.html
Source text last modified Wed Sep 13 10:50:27 2000.
This page generated on Wed Sep 13 10:50:31 2000 by Siteweaver. Validate this page's HTML.
Contact our webmaster at rebelsky@grinnell.edu