From: bnb
Subject: Computer Science from Lisp perspective
Date: 
Message-ID: <d2e9c18d-e64d-4837-8185-87b1be5a3164@r66g2000hsg.googlegroups.com>
I am a Lisp newbie with only a little background in C.S.

Can anyone give me advice on resources about the Computer Science
subjects
of data structures and algorithms?

Would "Algorithms" by Robert Sedgewick or "Data Structures and
Algorithms"
by Alfred Aho make sense?  They apparently use pseudo-code.

I want to learn concepts that will be of most use when programming in
Lisp.

Perhaps basic data structures are the same regardless of what language
is
used, but I would think algorithms could be quite different in Lisp.
Or,
if not, then a conversion from the imperative style in the
aforementioned
texts to a declarative style in lisp would suffice.

Anyway, I am hoping you guys can steer me past the 'don't waste your
time'
texts to the gems.

Boyd

Putting up my Kenny shield.

From: Ken Tilton
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <4831ab1a$0$25020$607ed4bc@cv.net>
bnb wrote:
> I am a Lisp newbie with only a little background in C.S.
> 
> Can anyone give me advice on resources about the Computer Science
> subjects
> of data structures and algorithms?
> 
> Would "Algorithms" by Robert Sedgewick or "Data Structures and
> Algorithms"
> by Alfred Aho make sense?  They apparently use pseudo-code.
> 
> I want to learn concepts that will be of most use when programming in
> Lisp.
> 
> Perhaps basic data structures are the same regardless of what language
> is
> used, but I would think algorithms could be quite different in Lisp.
> Or,
> if not, then a conversion from the imperative style in the
> aforementioned
> texts to a declarative style in lisp would suffice.
> 
> Anyway, I am hoping you guys can steer me past the 'don't waste your
> time'
> texts to the gems.
> 
> Boyd
> 
> Putting up my Kenny shield.

Don't be an idiot.

You are right, data structures are the same except to Knuth's horror we 
(they) decided to build the language atop the linked list so you can use 
that out the wazoo.

I think you are actually looking for On Lisp -- and you just need the 
one chapter -- and on-line fer free.

kenny

-- 
http://smuglispweeny.blogspot.com/
http://www.theoryyalgebra.com/
ECLM rant: 
http://video.google.com/videoplay?docid=-1331906677993764413&hl=en
ECLM talk: 
http://video.google.com/videoplay?docid=-9173722505157942928&q=&hl=en
From: vanekl
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <g0seqk$cij$2@aioe.org>
bnb wrote:
> I am a Lisp newbie with only a little background in C.S.
> 
> Can anyone give me advice on resources about the Computer Science
> subjects
> of data structures and algorithms?
> 
> Would "Algorithms" by Robert Sedgewick or "Data Structures and
> Algorithms"
> by Alfred Aho make sense?  They apparently use pseudo-code.
> 
> I want to learn concepts that will be of most use when programming in
> Lisp.
> 
> Perhaps basic data structures are the same regardless of what language
> is
> used, but I would think algorithms could be quite different in Lisp.
> Or,
> if not, then a conversion from the imperative style in the
> aforementioned
> texts to a declarative style in lisp would suffice.
> 
> Anyway, I am hoping you guys can steer me past the 'don't waste your
> time'
> texts to the gems.
> 
> Boyd
> 
> Putting up my Kenny shield.

there are a few things that came out of MIT that are notable. this is one of them.
http://books.google.com/books?id=NLngYyWFl_YC&dq=%22introduction+to+algorithms
From: Pascal J. Bourguignon
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <7clk26s1ip.fsf@pbourguignon.anevia.com>
bnb <·········@hal-pc.org> writes:
> Anyway, I am hoping you guys can steer me past the 'don't waste your
> time' texts to the gems.

You won't waste any time studying algorithms and data structures.  So
do read these books (and just do the exercises in lisp ;-)).

Then you might be more specifically interested in "lisp books" such as:

SICP  = Structure and Interpretation of Computer Programs
        http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html
        http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/

PAIP  = Paradigms of Artificial Intelligence Programming: 
        Case Studies in Common Lisp (cf Amazon)

(or the older "Artificial Intelligence Programming"
http://www.lisp.org/table/books.htm#charniak  which describes
algorithms and datastructures more specifically used in AI like PAIP).




http://www.lisp.org/table/books.htm
http://www.cliki.net/admin/search?words=books
-- 
__Pascal Bourguignon__
From: ·······@eurogaran.com
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <cfd42373-ce7b-406a-8977-1ae1e591e022@m36g2000hse.googlegroups.com>
> SICP  = Structure and Interpretation of Computer Programs
>        http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html
>        http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/

This one is specially interesting in that :
1- It is thought as a generic intro to computing and its important
concepts.
2- There are internet-published videos of the original lectures.
From: Rainer Joswig
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <joswig-17EC50.18403619052008@news-europe.giganews.com>
In article 
<····································@r66g2000hsg.googlegroups.com>,
 bnb <·········@hal-pc.org> wrote:

> I am a Lisp newbie with only a little background in C.S.
> 
> Can anyone give me advice on resources about the Computer Science
> subjects
> of data structures and algorithms?
> 
> Would "Algorithms" by Robert Sedgewick or "Data Structures and
> Algorithms"
> by Alfred Aho make sense?  They apparently use pseudo-code.
> 
> I want to learn concepts that will be of most use when programming in
> Lisp.

Most of the above are applicable. You can code much of
what in Sedgewick's book is in Lisp (and find errors).

In the Scheme world there are a few books that have
a slightly different approach: SICP, Schematics of Computation,
HTDP (How to design programs), ... Datastructures and
Algorithms are important parts of above books.

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start
http://www.cs.ubc.ca/spider/little/preface.html
http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-1.html#node_toc_start

Common Lisp books are more specialized when it comes to
algorithms. I can't remember a computer science introduction
or algorithm book that exclusively uses Common Lisp.
They usually tend to describe algorithms and datastructures
for AI programming (rules, logic, frames, constraints, parsing,  ...)
or stuff like 'calendrical calculations'.
There are some code collections and I guess you might also
find some lectures notes from University courses using Common Lisp.
 
> Perhaps basic data structures are the same regardless of what language
> is
> used, but I would think algorithms could be quite different in Lisp.
> Or,
> if not, then a conversion from the imperative style in the
> aforementioned
> texts to a declarative style in lisp would suffice.
> 
> Anyway, I am hoping you guys can steer me past the 'don't waste your
> time'
> texts to the gems.
> 
> Boyd
> 
> Putting up my Kenny shield.

-- 
http://lispm.dyndns.org/
From: Pascal J. Bourguignon
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <7c8wy5sam4.fsf@pbourguignon.anevia.com>
Rainer Joswig <······@lisp.de> writes:
> In the Scheme world there are a few books that have
> a slightly different approach: SICP, Schematics of Computation,
> HTDP (How to design programs), ... Datastructures and
> Algorithms are important parts of above books.
>
> http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start

Not really a scheme book, is it.
By the way, here are all the exercises in Common Lisp:
http://eli.thegreenplace.net/category/programming/lisp/sicp/

-- 
__Pascal Bourguignon__
From: Pertti Kellomäki
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <g0s9b7$ufn$1@news.cc.tut.fi>
bnb wrote:
> Perhaps basic data structures are the same regardless of what language is
> used, but I would think algorithms could be quite different in Lisp.
> Or, if not, then a conversion from the imperative style in the
> aforementioned texts to a declarative style in lisp would suffice.

Lisp is not really all that functional. For example, a binary tree
in Lisp would in all likelihood be implemented using mutable
elements (cons cells, vectors, structures,...) So algorithms
in Sedgewick, Aho, etc. are perfectly applicable in Lisp.

If you want to learn about how to implement data structures in
languages without mutation, check out Okasaki's "Purely Functional
Data Structures".
-- 
Pertti
From: jurgen_defurne
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <cbde2f19-e51b-41b3-a94b-5dfc75473b84@y21g2000hsf.googlegroups.com>
On May 19, 5:59 pm, bnb <·········@hal-pc.org> wrote:
> I am a Lisp newbie with only a little background in C.S.
>
> Can anyone give me advice on resources about the Computer Science
> subjects
> of data structures and algorithms?
>
> Would "Algorithms" by Robert Sedgewick or "Data Structures and
> Algorithms"
> by Alfred Aho make sense?  They apparently use pseudo-code.
>
> I want to learn concepts that will be of most use when programming in
> Lisp.
>
> Perhaps basic data structures are the same regardless of what language
> is
> used, but I would think algorithms could be quite different in Lisp.
> Or,
> if not, then a conversion from the imperative style in the
> aforementioned
> texts to a declarative style in lisp would suffice.
>
> Anyway, I am hoping you guys can steer me past the 'don't waste your
> time'
> texts to the gems.
>
> Boyd
>
> Putting up my Kenny shield.

Having programmed in a range of programming languages (Clipper and
FoxPro in the beginning of the 90's, COBOL with and without RDBMS at
the end and Perl since 2000), I have found the single most important
book which made me change the way I think about program, <a
href="http://www.htdp.org/2003-09-26/Book/">How To Design Programs</
a>. It works with Scheme, not Common Lisp, but let that not be an
obstacle.

Take your time to work through it. Do the exercises, study the program
design exercises. Remember the single most important motivation in the
book :

        everyone should learn how to design programs.

Regards,

Jurgen
From: Grant Rettke
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <da16bce7-a29d-4329-9830-5be4324cca90@t54g2000hsg.googlegroups.com>
On May 20, 6:37 am, jurgen_defurne <··············@pandora.be> wrote:
> the single most important
> book which made me change the way I think about program, <a
> href="http://www.htdp.org/2003-09-26/Book/">How To Design Programs</
> a>.
>
> Take your time to work through it. Do the exercises, study the program
> design exercises. Remember the single most important motivation in the
> book :
>
>         everyone should learn how to design programs.

+1
From: Grant Rettke
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <a8955be4-5743-4f89-8f95-f871abf65045@x35g2000hsb.googlegroups.com>
On May 20, 6:37 am, jurgen_defurne <··············@pandora.be> wrote:
> I have found the single most important
> book which made me change the way I think about program, <a
> href="http://www.htdp.org/2003-09-26/Book/">How To Design Programs</
> a>.

The exciting thing about Lisp is that it removes the most barriers
when it comes to studying computation/computer-science/abstraction. It
makes learning how to program so much easier. By the same token, once
you know how to program, you've got this awesome language with which
you may easily apply all the abstractions you have learned. That is
why people always say "Once you learn Lisp you will program in every
language differently"; because you will have learned how to program in
the first place.

> Take your time to work through it. Do the exercises, study the program
> design exercises.

Lisp is a kind teacher; it graciously reveals flaws in your study
habits. The above advice is the best resolve for such flaws.

> Remember the single most important motivation in the
> book :
>
>         everyone should learn how to design programs.

It is true. Everyone should learn because it develops the skills of:
1. Critical thinking.
2. Planning/Visualizing.
3. Abstracting.
4. Implementing/Doing.

All worthwhile stuff.

There are many paths to learning programming; the easiest is with
Lisp. Studying in particular. When the focus is only on producing
"real world code", the studying part usually gets lost.
From: Tim X
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <871w3wxd3d.fsf@lion.rapttech.com.au>
bnb <·········@hal-pc.org> writes:

> I am a Lisp newbie with only a little background in C.S.
>
> Can anyone give me advice on resources about the Computer Science
> subjects
> of data structures and algorithms?
>
> Would "Algorithms" by Robert Sedgewick or "Data Structures and
> Algorithms"
> by Alfred Aho make sense?  They apparently use pseudo-code.
>
> I want to learn concepts that will be of most use when programming in
> Lisp.
>
> Perhaps basic data structures are the same regardless of what language
> is
> used, but I would think algorithms could be quite different in Lisp.
> Or,
> if not, then a conversion from the imperative style in the
> aforementioned
> texts to a declarative style in lisp would suffice.
>
> Anyway, I am hoping you guys can steer me past the 'don't waste your
> time'
> texts to the gems.
>
> Boyd
>
> Putting up my Kenny shield.

Probably SICP would be a good one to use. The ones you mentioned are
also quite OK. Personally, I always really liked Knuth's style of
explination. For me, it wasn't so much about the code used to give
examples, but rather the underlying concepts and abstractions and these
don't really change because of the language . Knuth used  a pesudo
machine/assembly language a lot and thats partly why I liked it - rather
than getting distracted by specific language features etc, you get to
see the real algorithm. Combining this sort of approach with the
abstraction emphasis of SICP were a good combination for me. 

In most cases, I think different strokes for different folks is a good
guide. Find an author whose style of expression fits well with you and
just use them rather than worrying about the language used to
demonstrate the ideas. For example, I know people who can't stand
Knuth's style and find him difficult to understand where I found his
explinations some of the clearest I've ever been lucky enough to find.

I've also found using other non computer aids very useful. When I first
started to learn about sorting algorithms, I found a deck of cards
incredibly useful for really getting to understand how different
algorithms work. I once saw an explination of game theory effectively
and clearly explained using matchboxes and different coloured marbles
etc. Once you have the concepts down, implementing the algorithm in any
language is often really just applying language syntax (ignoring
efficiency issues etc to start with). Get the concepts and the rest will
follow regardless of what language you are using. 

Tim

-- 
tcross (at) rapttech dot com dot au
From: bnb
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <50a5fd2a-61a2-424f-97de-54f3b4f31c3b@d77g2000hsb.googlegroups.com>
On May 19, 10:59 am, bnb <·········@hal-pc.org> wrote:

Thanks to all for such good advice.

Pertti, I just purchased used copies of Sedgewick and Aho.  Thanks.
Glad to know the algorithms just need to
be implemented in Lisp.  Not interested in a purely functional
language, versatility of Lisp I like.

Thanks, Pascal, I have SICP and PAIP, just need time.  Would HTDP be
beneficial before tackling SICP?

Kenny, shield down.  Obviously, if I hadn't put it up it would not
have been needed.  Thanks for the suggestion
of On Lisp.  I downloaded it a while back but haven't jumped into it
yet as I may not be ready.  Hearing the raves
about it has convinced me it is a must read.  Does it show how
commonly used methods in other languages
can be better implemented with macros?

Rainer, I have no problem using Scheme in learning C.S., data
structures, algorithms, etc.  It is close enough to
Lisp (Common Lisp).  I can't imagine actually using it instead of
Common Lisp though.  Thanks for letting me know
SICP and HTDP do in fact cover data structures and algorithms.  Just
what I was looking for.  Both HTDP and SICP?
If so, which one first?  If not, which one?

Thanks kodi, I downloaded the SICP video lectures.  Have to find the
time.  Looks like a great resource.  Have you
watched the videos?  Are they worth watching in addition to reading
and doing SICP?

Thanks vaneki.  Do you recommend Cormen et al - Algorithms over
Sedgewick's?

Thanks again, Pascal.  Lisp code for SICP:
http://eli.thegreenplace.net/category/programming/lisp/sicp/

Thanks jurgen_defurne and Grant.  I checked out HTDP, started and now
in Section 3.  The steps for program
design are so useful and probably needed regardless of what language
is used.  This looks like just what I need.
Nevertheless, I am a lisper, not a schemer, but am sure I can learn
much from it.

Thanks Tim.  I apparently have many strokes because each Lisp book I
have has contributed to what I currently
know.  Every author has his way of explanation.  What I don't quite
understand from one is quite clear from another.
Recently found Winston and Horn "Lisp" and really like their
explanations.

Thanks to all.  Just need the time and discipline to follow through.
I currently have 8 books on Lisp and another
one on the way.  It's brand new.  "Let Over Lambda".

c.l.l. is great.  I read it every morning, first thing.  Keep it up
guys.  You are needed out here in the cold sleepy
world of mediocrity.

Boyd
From: Ken Tilton
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <4835ff2a$0$15197$607ed4bc@cv.net>
bnb wrote:
> Kenny, shield down.  Obviously, if I hadn't put it up it would not
> have been needed. 

Finally, someone who can read!

But the shield was not needed at all, for you were not flamed. For a 
good-natured jest? My reputation dishonors me if that is the expectation 
it engenders. So why the "idiot"? You seemed keen on a dash for the 
asbestos in a bulls of Pamplona kinda way and I did not want to disappoint.

> Thanks for the suggestion
> of On Lisp.  I downloaded it a while back but haven't jumped into it
> yet as I may not be ready.  Hearing the raves
> about it has convinced me it is a must read.  Does it show how
> commonly used methods in other languages
> can be better implemented with macros?

I do not think so. ISTR he just laid it out and figured anyone worth 
their salt would Just Get It. Reminds me of Cells, some people JGI, some 
people are idiots.

:)

kt

-- 
http://smuglispweeny.blogspot.com/
http://www.theoryyalgebra.com/
ECLM rant: 
http://video.google.com/videoplay?docid=-1331906677993764413&hl=en
ECLM talk: 
http://video.google.com/videoplay?docid=-9173722505157942928&q=&hl=en
From: Sohail Somani
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <hhnZj.3612$Yp.3315@edtnps92>
Ken Tilton wrote:
> 
> I do not think so. ISTR he just laid it out and figured anyone worth 
> their salt would Just Get It. Reminds me of Cells, some people JGI, some 
> people are idiots.

But... I don't get it.
From: Ken Tilton
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <48360acf$0$25057$607ed4bc@cv.net>
Sohail Somani wrote:
> Ken Tilton wrote:
> 
>>
>> I do not think so. ISTR he just laid it out and figured anyone worth 
>> their salt would Just Get It. Reminds me of Cells, some people JGI, 
>> some people are idiots.
> 
> 
> But... I don't get it.

I already had to apologize to you once, you get a six month exemption.

:)

kenny

-- 
http://smuglispweeny.blogspot.com/
http://www.theoryyalgebra.com/
ECLM rant: 
http://video.google.com/videoplay?docid=-1331906677993764413&hl=en
ECLM talk: 
http://video.google.com/videoplay?docid=-9173722505157942928&q=&hl=en
From: Ken Tilton
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <48364c0c$0$11597$607ed4bc@cv.net>
Sohail Somani wrote:
> Ken Tilton wrote:
> 
>>
>> I do not think so. ISTR he just laid it out and figured anyone worth 
>> their salt would Just Get It. Reminds me of Cells, some people JGI, 
>> some people are idiots.
> 
> 
> But... I don't get it.

Wait... have you ever used a spreadsheet?

And on what application are you working? Sorry, I am sure you have 
mentioned it.

kzo

ps. And what part of the Cells Manifesto was most confusing to you?

-- 
http://smuglispweeny.blogspot.com/
http://www.theoryyalgebra.com/
ECLM rant: 
http://video.google.com/videoplay?docid=-1331906677993764413&hl=en
ECLM talk: 
http://video.google.com/videoplay?docid=-9173722505157942928&q=&hl=en
From: Sohail Somani
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <XmsZj.3665$Yp.1873@edtnps92>
Ken Tilton wrote:
> 
> 
> Sohail Somani wrote:
>> Ken Tilton wrote:
>>
>>>
>>> I do not think so. ISTR he just laid it out and figured anyone worth 
>>> their salt would Just Get It. Reminds me of Cells, some people JGI, 
>>> some people are idiots.
>>
>>
>> But... I don't get it.
> 
> Wait... have you ever used a spreadsheet?
> 
> And on what application are you working? Sorry, I am sure you have 
> mentioned it.

Which life? Lisp projects on hold. Concentrating on something with more 
potential now.

Where did I put that flame suit?

No really.

> kzo
> 
> ps. And what part of the Cells Manifesto was most confusing to you?

I was kidding! But I can see how you might be confused seeing as I used 
the serious font.
From: jurgen_defurne
Subject: Re: Computer Science from Lisp perspective
Date: 
Message-ID: <c25e6c39-bb1b-4f71-9be9-83359251d5c9@y21g2000hsf.googlegroups.com>
On May 22, 11:41 pm, bnb <·········@hal-pc.org> wrote:
> On May 19, 10:59 am, bnb <·········@hal-pc.org> wrote:
>
> Thanks to all for such good advice.
>
> Pertti, I just purchased used copies of Sedgewick and Aho.  Thanks.
> Glad to know the algorithms just need to
> be implemented in Lisp.  Not interested in a purely functional
> language, versatility of Lisp I like.
>
> Thanks, Pascal, I have SICP and PAIP, just need time.  Would HTDP be
> beneficial before tackling SICP?
>
> Kenny, shield down.  Obviously, if I hadn't put it up it would not
> have been needed.  Thanks for the suggestion
> of On Lisp.  I downloaded it a while back but haven't jumped into it
> yet as I may not be ready.  Hearing the raves
> about it has convinced me it is a must read.  Does it show how
> commonly used methods in other languages
> can be better implemented with macros?
>
> Rainer, I have no problem using Scheme in learning C.S., data
> structures, algorithms, etc.  It is close enough to
> Lisp (Common Lisp).  I can't imagine actually using it instead of
> Common Lisp though.  Thanks for letting me know
> SICP and HTDP do in fact cover data structures and algorithms.  Just
> what I was looking for.  Both HTDP and SICP?
> If so, which one first?  If not, which one?
>
> Thanks kodi, I downloaded the SICP video lectures.  Have to find the
> time.  Looks like a great resource.  Have you
> watched the videos?  Are they worth watching in addition to reading
> and doing SICP?
>
> Thanks vaneki.  Do you recommend Cormen et al - Algorithms over
> Sedgewick's?
>
> Thanks again, Pascal.  Lisp code for SICP:http://eli.thegreenplace.net/category/programming/lisp/sicp/
>
> Thanks jurgen_defurne and Grant.  I checked out HTDP, started and now
> in Section 3.  The steps for program
> design are so useful and probably needed regardless of what language
> is used.  This looks like just what I need.
> Nevertheless, I am a lisper, not a schemer, but am sure I can learn
> much from it.
>
> Thanks Tim.  I apparently have many strokes because each Lisp book I
> have has contributed to what I currently
> know.  Every author has his way of explanation.  What I don't quite
> understand from one is quite clear from another.
> Recently found Winston and Horn "Lisp" and really like their
> explanations.
>
> Thanks to all.  Just need the time and discipline to follow through.
> I currently have 8 books on Lisp and another
> one on the way.  It's brand new.  "Let Over Lambda".
>
> c.l.l. is great.  I read it every morning, first thing.  Keep it up
> guys.  You are needed out here in the cold sleepy
> world of mediocrity.
>
> Boyd

I started out with trying Common Lisp first, but with only ClTl2 and
the ClHS this was daunting. Then I found HTDP, which eased me into
Scheme and the way Lisp works. After that, I started back again on the
ClHS and ClTl2 to learn Common Lisp, and I had a much easier time
after that. Currently, I am busy on SICP. I try to do one exercise
every evening. I just started since a couple of weeks, after I found
the book on the flee market.

Jurgen