From: Rudolf Schlatte
Subject: Classic Lisp programs
Date: 
Message-ID: <7dajjl$8bl@fstgal00.tu-graz.ac.at>
Hello,

  I was wondering if someone could point me to programs that could be
considered "classic" in a sense that they show good design and
implementation techniques.  I have read the relevant portions of the
ALU website and also browsed through a paper by Kent Pitman et
al. (can't recall the title and it's in my bookcase at home; it is
based upon a speech).  I feel reasonably confident now at the
procedure level, and my Visual Basic skills have begun to crumble
since all these pesky functional programming idioms begin to creep in
(also coded my first local helper function in PL/SQL that recursively
calls the main function again--whoopee!), but I still feel quite
wobbly when thinking about the layout of a larger program.  

  How large should a sourcefile be?  When does it make sense to split
a project into separate files?  When programming in C, the files tend
to be quite small so the next "make" will not take too long, but this
is a non-issue for me because after a change in a file, I need only
re-evaluate the single affected defun or whatever.  I suspect that
other considerations come into play here and I do not want to develop
bad habits.  I would really like to see some code that you think is
organized clearly in this regard, or hear how It Is Done Here :) [By
the way, is there a gentle introduction to defsystem somewhere on the
net?  I think I could need it.]

  One thing that helped very much for my understanding of these
large-scale stylistic issues was Erik Naggum's comparison of a running
Lisp environment with a filesystem (compiled Lisp functions in memory
corresponding to compiled C executables on disk--hope I got that
right).  What then is the preferred way of "booting"?  If I understood
right, I can write an image of the current Lisp core that saves all my
definitions.  But at the moment I still tend to type (load
"autoexec.lisp") because I miss the equivalent to "ls ~/my.binaries/"
-- I like to type something in and see what is there.  Is there an
idiom for doing this the Lisp way?  
-----
Well, I suspected there was--I just found list-all-packages and
do-all-symbols (thanks for the HyperSpec, btw).  I think some small
functions that show me the contents of a package (I'll call them 'ls
and 'ls-l :-), some thinking of "what goes where" and a source file
for each package should make me happy.  Still, I am interested how
other persons keep their desk neat and tidy, so to speak.

Thanks, Rudi

From: Larry Hunter
Subject: Re: Classic Lisp programs
Date: 
Message-ID: <rbn212hpkx.fsf@work.nlm.nih.gov>
   I was wondering if someone could point me to programs that could be
   considered "classic" in a sense that they show good design and
   implementation techniques.

One good source of such programs (and ones that do interesting things) is
the "Inside X" series from Lawrence Erlbaum Associates.  These are Chris
Riesbeck certified implementations of various language and reasoning
programs, complete with book length descriptions of the design rationales,
and exercises for extending the programs.  Some of the older ones are in
Lisps other than Common Lisp.

  http://www.erlbaum.com/758.htm
  http://www.erlbaum.com/755.htm
  http://www.erlbaum.com/627.htm
  http://www.erlbaum.com/2710.htm


Riesbeck's web site also has lots of great LISP code.  

  http://www.cs.nwu.edu/~riesbeck/

-- 
Lawrence Hunter, PhD.
National Library of Medicine               phone: +1 (301) 496-9303
Bldg. 38A, 9th fl, MS-54                   fax:   +1 (301) 496-0673
Bethesda. MD 20894 USA                     email: ······@nlm.nih.gov
From: Paolo Amoroso
Subject: Re: Classic Lisp programs
Date: 
Message-ID: <36fafc34.4083379@news.mclink.it>
On 24 Mar 1999 11:51:17 GMT, Rudolf Schlatte <········@ist.tu-graz.ac.at>
wrote:

> organized clearly in this regard, or hear how It Is Done Here :) [By
> the way, is there a gentle introduction to defsystem somewhere on the
> net?  I think I could need it.]

You may check the documentation that comes with Mark Kantrowitz's
DEFSYSTEM. It's available at the Common Lisp Repository:

	ftp://ftp.cs.cmu.edu/user/ai/lang/lisp/


Paolo
-- 
Paolo Amoroso <·······@mclink.it>