No credit. |
Prof. Larry Hunter |
Practical Lisp for Programmers |
SoM #2817b |
PORTL (School of Medicine room 1644) |
315-1094 |
Tuesdays and Thursdays, 11:00am-12:30pm |
|
Office hours by appointment |
This course is an introduction to the facilities, style and modern usage of the programming language Common Lisp.
Why lisp? Not only is it one of the main languages that our tools have been written in, it's a great language for other reasons. You can look at a powerpoint presentation I gave last year about why I think lisp is worth learning.
Goals for the course: This class assumes you are already a pretty good programmer in another language (e.g. C, Java, perl) and know about things like types, data structures, functions, etc. You will come away with an understanding of how to write and understand idiomatic lisp code, and with an appreciation of some of the advantages that lisp has to offer over other programming languages. We will cover at least briefly most of the built-in functions that common lisp offers, and some useful extensions to the ANSI language (including web and network tools, system definition facilities, and interfaces to external databases). We will also cover practical issues such as debugging, optimization, and interfaces with code written in other languages.
Course Requirements:
Computational: Access to a computer with an internet connection. I prefer you use an linux/intel machine for several reasons:
However, if you insist on using a windows machine, you can get the Trial Version of Allegro Common Lisp for windows from Franz's download site, and emacs and ILISP from the other sources mentioned. You are on your own for getting emacs to run under windows, but it shouldn't be too hard. Try looking at Bill Clementson's CL on Windows Cookbook. Clementson says that the Windows trial version doesn't work with ILISP, but he suggests some alternative common lisp implementations that do. Or check out the list of implementations at the lisp.org web site. Once you have lisp running inside emacs/ILISP, there should be few noticable differences between the linux and windows versions.
(setq
ilisp-*use-fsf-compliant-keybindings* t)
(global-set-key [f6]
'allegro)
(global-set-key [f12] 'acldoc)
which says to use the new FSF compliant keybindings for ILISP, to make F6 start (or continue) a lisp session, and f12 start browsing documentation. This will make more sense after you read the ILISP documentation, or you can just do it. Feel free to pick your own keys. Read the emacs documentation about keybindings if you want to do fancier things (use the info pages, ^h-i, to get started).
cvs -d:pserver:anonymous@cvs.ilisp.sourceforge.net:/cvsroot/ilisp login
cvs -z3 -d:pserver:anonymous@cvs.ilisp.sourceforge.net:/cvsroot/ilisp co ILISP
Just give an empty password (hit return) if prompted for one when you log in to the cvs host. Then you need to configure your emacs so that it loads ILISP automatically. If the directory where you put the ILISP installation is in the emacs load path, you can just add
(require 'ilisp)
(setq allegro-program
"/usr/local/src/acl62/mlisp")
(or wherever your lisp binary
happens to live) to the /usr/local/share/emacs/site-lisp/site-start.el
file. When you first start ilisp (by typing M-x allegro
to emacs), it may complain that initialization files are not compiled.
Assuming you have write permission to the directory where ilisp lives,
you can just type M-x ilisp-compile-inits
and that will
be fixed. (N.B. XEmacs comes with ilisp as an XEmacs package.
Install the new version of ilisp over the old one, by default in
/usr/local/lib/xemacs/xemacs-packages/lisp)