Re: QUICKCHECK Your Assignment 2 Submission
Dear CSCI-316 Students,
No classes are scheduled at the College next Monday; our next class will be on Wednesday 22nd. We will ALSO meet for class on Friday of next week, 10/24, when classes will follow a Monday schedule; but I will NOT have a 4:45-5:20 office hour period that day.
However, the main reasons I am sending this email are:
-
(a) To announce two reading assignments—Reading Assignments 1 and 2 below—that you should do after submitting Lisp Assignment 3. If possible, do these reading assignments before our 12th class (10/22, next Wednesday). Otherwise, do this reading as soon as possible after that class.
-
(b) To provide you with a list of built-in functions and other features of Lisp that have been covered in class or have been covered in earlier reading assignments or are covered in Reading Assignments 1 and 2 below. Be sure to look over this list, and do so again before Exam 1 and before the final exam!
-
(c) To announce that Lisp Assignment 4 is now available to you on Brightspace. You ought to be able to do problems A-G of Sec. 1 of Lisp Assignment 4 after doing Reading Assignments 1 and 2 below.
You should be able to do the thirteen problems in Sec. 2 after doing Reading Assignments 1 and 2 and attending our 12th and 13th classes on Wednesday and Friday of next week. (Some of you may be able to do many or even all the problems of Sec. 2 after our 12th class next Wednesday.)
Reading Assignments
Reading Assignment 1
In the course reader, read the subsection on LET and LET* on pages 390-91. Note: The square function on p. 391 is defined at the top of p. 389.
Reading Assignment 2
Read the subsections on LET and LET* in Touretzky (i.e., secs. 5.5 & 5.6 on pp. 141-47).
If you cannot do Reading Assignments 1 and 2 above before our 12th class (next Wednesday, 10/22), then do this reading as soon as possible after that class.
List of Covered Lisp Features
Assuming you have attended all classes, after reading all the pages in Touretzky you were asked to read in my previous emails and doing the two reading assignments given above, you should be able to write Lisp code that uses any of the following:
Special Forms and Control Flow
- SETF (But SETF must NOT be used in the functions you write for Assignments 3, 4, and 5, and must NOT be used in the functions you write to answer exam questions.)
- DEFUN
- QUOTE or
' - IF, COND
- AND, OR
- LET and LET*
- T and NIL
Arithmetic Functions
+, -, *, /, ABS, SQRT
List Functions
CARandCDRC...Rfunctions (CAAR, CADDR, etc.)FIRST, REST, SECOND, THIRD, FOURTHCONS, LIST, APPEND(Note that, whereas LIST and APPEND can take more than 2 arguments, CONS must be called with just 2 arguments.)LENGTH
Logical and Type-checking Functions
NOTNULLTYPEPNUMBERP, INTEGERP, RATIONALP, FLOATPREALP, SYMBOLP, LISTP, CONSPATOM
Comparison Functions
EQUAL, EQ, EQL=, /=<, >, <=, >=ZEROP, PLUSP, MINUSPEVENP, ODDP
List Membership
ENDPMEMBER
Please look over the above list after doing the two reading assignments given above and check that you are indeed familiar with everything that is listed here!
Lisp Assignment 4
Lisp Assignment 4 is now available to you on Brightspace.
You should do the seven problems in Section 1 of Lisp Assignment 4 (i.e., problems A-G) after you have done the two reading assignments that are given above. Try to have done all of them by the time we meet for our 13th class (next Friday, 10/24).
Try to do all thirteen problems of section 2 BEFORE OR WITHIN 24 HOURS AFTER our 14th class (on Monday, 10/27). Lisp Assignment 5 and reading assignments relating to Assignment 5 will be provided to you no later than 10/29.
Important Notes on Assignment Code
When doing the assignments, make sure your code is written in a functional style. So variables must be immutable and your functions must not have side-effects. For example, the functions you write must NOT use SETF! Moreover, the functions you write for Lisp Assignment 4 are not expected to use any features of Lisp other than those listed above.
Also make sure the body of each of your function definitions consists of JUST ONE EXPRESSION: Each function definition must end with ... )) where the 2nd-last “)” matches the “(“ that immediately follows the function’s list of formal parameters.
See you in class on Wednesday.
T. Yung Kong, D.Phil.
Professor
Computer Science Department
Queens College, CUNY
Flushing, NY 11367, U.S.A.