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.) Details follow. (a) Here are two reading assignments you should do as soon as possible after you have completed Lisp Assignment 3 and also done Reading Assignment C in my email of 10/2: 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. (b) 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 in (a), you should be able to write Lisp code that uses any of the following: 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 The following built-in functions: +, -, *, /, ABS, SQRT CAR and CDR C...R functions (CAAR, CADDR, etc.) FIRST, REST, SECOND, THIRD, FOURTH CONS, LIST, APPEND (Note that, whereas LIST and APPEND can take more than 2 arguments, CONS must be called with just 2 arguments.) LENGTH NOT NULL TYPEP NUMBERP, INTEGERP, RATIONALP, FLOATP REALP, SYMBOLP, LISTP, CONSP ATOM EQUAL, EQ, EQL =, /= <, >, <=, >= ZEROP, PLUSP, MINUSP EVENP, ODDP ENDP MEMBER Please look over the above list after doing the two reading assignments given in (a) and check that you are indeed familiar with everything that is listed here! (c) Lisp Assignment 4 is now available to you om 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 in (a). 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. 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 in (b) 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.