From: spierings
Subject: C++ to Lisp
Date: 
Message-ID: <37E1D68A.35D995E1@internex.net.au>
I was wondering if there are any quick tutorials that could get an
advanced C++ programmer up and running quickly in Lisp. I'm looking for
something that shows the comparative equivalents of declaring functions
and classes etc. And a quick reference sheet describing syntax.
Keywords, operators, flow control etc.

If there is not something like that I'll just have to work my way
through ANSI Common Lisp standard.

Thanks for your help =)

Andre

From: Eugene Zaikonnikov
Subject: Re: C++ to Lisp
Date: 
Message-ID: <937553458.345501@lxms.cit.org.by>
spierings <······@internex.net.au> wrote in message
······················@internex.net.au...
> I was wondering if there are any quick tutorials that could get an
> advanced C++ programmer up and running quickly in Lisp. I'm looking for
> something that shows the comparative equivalents of declaring functions
> and classes etc. And a quick reference sheet describing syntax.
> Keywords, operators, flow control etc.

Since Lisp is not an Algol descendant language, it is not so easy
(impossible, actually) to make 1:1 mapping between C++ and Lisp constructs.
If you want to get familiar with Lisp concepts quickly, I suggest you to
read _Successful_Lisp_ by David Lamkins:
http://psg.com/~dlamkins/left/sl/sl.html

> If there is not something like that I'll just have to work my way
> through ANSI Common Lisp standard.

In this case you may consider HyperSpec by Kent Pitman:
http://www.harlequin.com/education/books/HyperSpec/
Very convenient in use. And of course it is cheaper than ANSI standard :)

The Association of Lisp Users website is a good source of bits about Lisp in
general:
http://www.elwoodcorp.com/alu

--
  Eugene.
From: Donald Fisk
Subject: Re: C++ to Lisp
Date: 
Message-ID: <37E25874.5F994649@inthan.be>
Eugene Zaikonnikov wrote:
> spierings <······@internex.net.au> wrote in message
> ······················@internex.net.au...

> > If there is not something like that I'll just have to work my way
> > through ANSI Common Lisp standard.
> 
> In this case you may consider HyperSpec by Kent Pitman:
> http://www.harlequin.com/education/books/HyperSpec/
> Very convenient in use. And of course it is cheaper than ANSI standard :)

I think, or at least hope, he means the book by Paul Graham, rather than
the ANSI standard per se.

>   Eugene.

Le Hibou (ma propre opinion)

-- 
"People help themselves to things if they think they will get
away with it, even things they are unlikely to have much use
for and cannot resell, such as traffic cones. In the UK we
call these people 'students'." -- Joe Boswell
From: Pierre R. Mai
Subject: Re: C++ to Lisp
Date: 
Message-ID: <87d7vheqqb.fsf@orion.dent.isdn.cs.tu-berlin.de>
spierings <······@internex.net.au> writes:

> I was wondering if there are any quick tutorials that could get an
> advanced C++ programmer up and running quickly in Lisp. I'm looking for
> something that shows the comparative equivalents of declaring functions
> and classes etc. And a quick reference sheet describing syntax.
> Keywords, operators, flow control etc.
> 
> If there is not something like that I'll just have to work my way
> through ANSI Common Lisp standard.

As others have already said, it is essentially very difficult to give
1:1 mappings of C++ constructs to Lisp constructs, since the
underlying concepts are quite different.

This is especially the case with the object-oriented subsets of both
languages, which are derived from very different paradigms.

So I'd suggest you take a read through one of the introductory books
on Common Lisp (like [1] or [3], which are not overly verbose), and
use the HyperSpec to get aquainted with the "non-OOP" aspects of
Common Lisp (after you have advanced beyond the beginner's stage in
CL, a read through [2] might also be in order).

After that, I'd suggest a combination of [4] with [5] and a look at
the source for [6] or a similar large OOP system implemented in CL,
to get aquainted with CLOS, the "OOP-subsystem" of CL.  This should
get you on the way to using CLOS effectively in your programming.
Believe me, this is worth the effort, because otherwise you just end
up writing C++ in CLOS, which will rob you of the many advantages
that CLOS offers over subject-centric varieties of OOP.

Taking a look at [7] or [8] for some domain-specific applications of
CL in the "real-world", will also give you a better understanding of
applying the concepts and constructs of CL.

Regs, Pierre.

Bibliography:

[1] Graham, Paul: "ANSI Common Lisp", Prentice Hall, 1996, 
    ISBN: 0133708756
[2] Graham, Paul: "On Lisp", Prentice Hall, 1994, 
    ISBN: 0130305529
[3] Lamkins, David B.: "Successful Lisp", 1995-now, Internet-Edition,
    Work-In-Progress at http://psg.com/~dlamkins/left/sl/sl.html
[4] Keene, Sonya E.: "Object Oriented Programming in Common Lisp:
    A Programmers Guide to the Common Lisp Object System",
    Addison-Wesley, 1989, ISBN: 0201175894
[5] Kiczales, Gregor; Des Rivieres, Jim; Bobrow, Daniel: "The Art of
    the Metaobject Protocol", MIT Press, 1991, ISBN: 0262610744
[6] Mallery, John C. et al., "Common Lisp Hypermedia Server
    (CL-HTTP)", software developed at the MIT AI Laboratory, see
    http://www.ai.mit.edu/projects/iiip/doc/cl-http/home-page.html for 
    details and source code.
[7] Norvig, Peter: "Paradigms of Artificial Intelligence Programming:
    Case Studies in Common Lisp", Ap Professional, 1992,
    ISBN: 1558601910
[8] Watson, Mark: "Common Lisp Modules: Artificial Intelligence in the
    Era of Neural Networks and Chaos Theory", Springer Verlag, 1991,
    ISBN: 0387976140

All of the above books are at the moment listed at amazon.com as being 
"available" for varying degrees of available.  Especially [2] might
currently be out of print, and [5] was at some time, but seems back in 
print now (delivery within 24 hours).

-- 
Pierre Mai <····@acm.org>         PGP and GPG keys at your nearest Keyserver
  "One smaller motivation which, in part, stems from altruism is Microsoft-
   bashing." [Microsoft memo, see http://www.opensource.org/halloween1.html]
From: Johan Kullstam
Subject: Re: C++ to Lisp
Date: 
Message-ID: <m2lna5eq8s.fsf@sophia.axel.nom>
spierings <······@internex.net.au> writes:

> I was wondering if there are any quick tutorials that could get an
> advanced C++ programmer up and running quickly in Lisp. I'm looking for
> something that shows the comparative equivalents of declaring functions
> and classes etc. And a quick reference sheet describing syntax.
> Keywords, operators, flow control etc.

lisp is completely backwards and inside out from C++.  half of your
task will consist of *un*-learning C++ idioms.  plan on taking a
little time to shift geats.  it me a little time to undo my C,
fortran, matlab experience.  

matlab is perhaps closest to lisp (but certainly not very close).  not
in syntax but in usage style.  you enter the lisp environment and then
you stay there (like in matlab).  data is handled in the aggregate
(matlab offers matrices but you want to vectorize and matricize your
operations for performance).  lisp adds functional style (programming
using functions as a basic data object).

> If there is not something like that I'll just have to work my way
> through ANSI Common Lisp standard.

get a good book on lisp like paul grahams _ansi common lisp_.  there
is an on-line reference.  look for the common lisp hyperspec.

-- 
J o h a n  K u l l s t a m
[········@ne.mediaone.net]
Don't Fear the Penguin!