[rescue] fans fans fans...

Joshua D Boyd jdboyd at cs.millersville.edu
Fri Jun 21 13:17:42 CDT 2002


On Fri, Jun 21, 2002 at 01:51:44PM -0400, Dave McGuire wrote:
> On June 21, Joshua D Boyd wrote:
> [large list of lisp stuff deleted for brevity]
> > I could go on...
> 
>   ...and you may name a hundred systems.  Maybe even five hundred.
> Compare that to the number of packages written in, say,
> C...FORTRAN...C++...hmm? ;)  *poke*

Just because a language doesn't have popular support doesn't mean it
is bad.  Just like having popular support doesn't mean it is good
(ahem, VB).  In the case of Lisp, I feel that it's problem is people
who don't use the proper editor (if you learn the commands, emacs
makes dealing with the parens quite simple), and/or think of it as
just an AI language, thanks to those stupid 70s and 80s wanks.
 
>   So you STILL haven't pointed me in the right direction for getting a
> quick intro to this too-many-parens-for-normal-people language.  What
> environment should I download?  What platform should I build it on?
> Are there any *PRACTICAL* introductory texts, either printed on
> online, that I should read?  Bearing in mind that I've always been a
> procedural programmer..

OK.  First, I recommend Scheme over Lisp.  I think it gets the point
across a lot faster than lisp does, and I think it is pretty easy to
switch back and forth, and the best thing I've found for learning
either is for scheme.

So, with that in mind, the best introduction is The Structure and
Interpretation of Computer Programs.  It is printed by MIT Press.  The
web site for the book is http://mitpress.mit.edu/sicp/ The ISBN is
0-262-01077-1, and the full text is online, beginning at
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html 

This book isn't a really fast intro, but you can get through each
section pretty quickly (an hour or two), and will have a lot of what
is needed by the time you get through chapter 3 (so by the time you
get through 13 sections).

The one downside to the book is it is mostly about building the logic
and data of programs, and it somewhat neglects how you get the logic
and data to interact with a user until much closer to the end of the
book. 

Another good Scheme book is How To Design Programs (text online at
http://www.htdp.org/2002-05-09/Book/curriculum-Z-H-1.html ), which is
also from MIT Press, but this time written by people from Rice
university. 

As to starting environment, guile seems pretty decent.  It isn't
something you would want to use professionally much, but it has a lot
of bindings available for it, which are pretty much needed if you want
to do real world stuff.  Plus, it is available on just about every
platform with a GNU toolkit, so you can use it on whatever you want.

I also use Scheme48, but I don't think that is very friendly with Macs
or Irix.  I also use SCM, which is supposed to be highly platform
portable, but I've only tried it on Linux.

I also use STk (of all the schemes, it is the most portable one for
GUI stuff since it has Tk built into it as opposed to being a seperate
binding). 

So, basically, of the above, I use guile, STk, scheme48 at home,
SCM and STk at school (both are small, which is exactly what I need to
make it fit on my school accounts), and STk on my work machine (the
installation consists of unzip a zip file, no installer needed, and it
is small and has the GUI stuff).

But, perhaps the best environment to start with is PLT Scheme from
Rice university.  Specifically, you would want their DrScheme
environment, which has a MacOS (classic for both 68k and PPC, and also
OS X) support.  This is setup as a learning environment, but you can
strip the simplifications away and do huge amounts of real work with
it (in theory, I've never seen it done commercially, but there are
impressive acedemic projects done).  I do not use it because I don't
yet have my Mac networked well enough to install it on that, and they
don't support Debian, and I haven't gotten around to doing a source
install.  The DrScheme web site is at http://www.drscheme.org/

In a bit, I will be posting an initial design for a lisp calculator,
and it will be written in STk, so it will give you something to look
at.  I'm learning a lot doing this, since this is the first time I've
had a reason to muck with REPL.  Bbasically, in a LISP system(the
concept applies to scheme, but the specifical functions for print and
read are named differently), the code (loop (print (eval (read)))) is
what is needed to write a new lisp environment. So, if I have a user
unfriendly command line lisp implementation, by messing with writing a
custom read function, I can add GNU readline like functionality.  By
messing with the print and read functions together, I can add GUI
support, and so on.  For the calculator, print is being messed with to
manage the screen, and read is being written to manage button by
button data entry, versus expression at a time entry like the basic
read call supplys. 

Anyway, once you get the ideas down and feel like switching to common
lisp, two of the ultimate environments are Mac Common Lisp and Franz
Allegro CL.  Franz's lisp is amazingly expensive, and it is just about
the only off the self option for writing commercial windows programs.
None of the free stuff has anywhere near enough GUI or Win32 API, or
whatever support yet.  So, Franz is what Izware uses (makers of Mirai
animation software), and Franz is what MS uses in their research labs,
and so on.

-- 
Joshua D. Boyd



More information about the rescue mailing list