The Department of Computer Science & Engineering
cse@buffalo

CSE202: Programming in Lisp

Course
Grades
Email

Welcome

Policies
    Grades
    Inc
    Intgrty

Preface
Part I
  Chap 1
  Chap 2
  Chap 3
  XEmacs
  Chap 4
  Chap 5
  Chap 6
  Chap 7
  Chap 8
  Chap 9
Part II
  Chap 10
  Chap 11
  Chap 12
  Chap 13
  Chap 14
  Chap 15
  Chap 16
  Chap 17
  Chap 18
  Chap 19
  Chap 20
  Chap 21
  Chap 22
  Chap 23
Part III
  Chap 24
  Chap 25
  Chap 26
  Chap 27
  Chap 28
  Chap 29
  Chap 30
  Chap 31
  Chap 32
PART II: PROGRAMMING IN PURE LISP
Notes

  1. Part II is the heart of the text/course. Here, you will learn how to write Common Lisp programs. However, in Part II, we will stick with "pure Lisp"---a subset of Lisp that forms a functional programming language. In pure Lisp, a program is a set of nested, often recursive, functions. You run the program by evaluating a main function on a set of arguments, and it returns a value.

  2. The heart of Part II is Chapters 15 through 18. These chapters cover the techniques of recursive programming. You may have written recursive functions before, but I hope that you will be much better at it after working through these chapters.

  3. What is missing in pure Lisp? Several things that you probably rely on most in other, imperative, programming languages---an assignment statement, reading, printing, and iteration. Common Lisp has these, and we will get to them in Part III, but after getting used to programming without them, you will be in a much better position to choose your programming style according to the particular problem you are working on. Notice that, not only does Common Lisp have both functional and imperative parts, so do other programming languages, and I hope that after working through this course, you will be able to use recursion and a functional programming style in all your programming.

  4. When you finish Part II, you will have earned a grade of B- in the course. Have fun!

Next

Copyright © 1999, 2000 by Stuart C. Shapiro. All rights reserved.

Stuart C. Shapiro <shapiro@cse.buffalo.edu>