Lisp Winston Horn Pdf Music Rating: 8,9/10 4862 votes
  1. Pierre Lavoie

Library genesis LISP by Patrick Henry Winston, Berthold K.P. Patrick Henry Winston, Berthold K.P. Pearson Education (US). This third edition is a revised and expanded version of Winston and Horn's best-selling introduction.

EEL-5840: Elements of Machine Intelligence FALL SEMESTER 2008 2008 Catalog Data: Elements of Machine Intelligence (3) Prereq: Senior or graduate standing. Engineering and hardware concepts pertaining to the design of intelligent computer systems. Textbook(s): LISP, Winston & Horn, 3 rd edition or later, 0-201-08319-1. The application of mapcar is explained through the following examples mapcar 1 from SCHOOL OF MCA at IGNOU Regional Centre.

Goodreads helps you keep track of books you want to read.
Rate this book

See a Problem?

We’d love your help. Let us know what’s wrong with this preview of Lisp by Patrick Henry Winston.
Not the book you’re looking for?

Preview — Lisp by Patrick Henry Winston

This third edition is a revised and expanded version of Winston and Horn's best-selling introduction to the LISP programming language and to LISP-based applications, many of which are possible as a result of advances in Artificual Intelligence technology.
Published July 12th 2019 by Addison-Wesley (first published December 1980)
To see what your friends thought of this book,please sign up.
To ask other readers questions aboutLisp,please sign up.
website and progrmaming books that are gods tier and I should read
36 books — 1 voter

More lists with this book...
Rating details

Jul 19, 2014Mark Miller rated it really liked it · review of another edition
I did not read through the whole book. I got interested in it because the documentation for Interlisp/65 (the implementation I've been using) mentioned it. The introduction piqued my interest, because it said it sourced material from DARPA work. I read chapters 15-23, because the other stuff in the book was either elementary to me (the first chapters are introductory Lisp), or stuff I wasn't interested in.
I'd call this more an elementary artificial intelligence book. AI is something I've shied a
...more
Jona Salazar Garcia rated it it was amazing
Mar 14, 2015
Sheri Fresonke Harper rated it really liked it
Apr 23, 2008
Patrick Langford rated it it was amazing
May 12, 2010
Sergio Roberto rated it really liked it
Sep 20, 2011
Michael Gubbels rated it it was amazing
Jul 08, 2017
Gregor Erbach rated it really liked it
Sep 27, 2011
Hakan Kjellerstrand rated it it was amazing
Apr 05, 2017
There are no discussion topics on this book yet.Be the first to start one »
Recommend ItStatsRecent Status Updates
Ohio
If you like books and love to build cool products, we may be looking for you.
Learn more »
See top shelves…
5followers
Posted by2 months ago

I am relatively new to Lisps. I have some experience using Clojure and have also written a small program in Racket, which solves (very successfully) a relatively complex robotic path planning task. Generally, I do a lot of driver/systems programming, numerical, and library/infrastructure stuff; mostly, I have been working in C/C++, but also Python, Java, FORTH, IEEE Structured Text and such. What is most interesting for me in Clojure is the philosophy on concurrency and parallelism, I also like the focus on functional purity and the elegance of the language a lot.

What I was missing is the access to the native environment and scripting capabilities and this (together with Racket's copyleft licensing) is the main reason why I started to learn Racket. I am quite happy with Rackets (Schemes) minimalistic philosophy. It seems to offer a performance roughly in the range of Java combined with a lot of expressive power and the ability to quickly prototype complex code like one would do in Python, with an expressive power and means for abstraction which are far far larger than Python. I am very happy with the quality and scope of the documentation.

What I sometimes miss in Racket compared to C/C++ is the capability to drop down to very fast native code, and the concurrency features which I perceive as weaker than the concurrency primitives that Clojure offers.

I've made some experiments with writing 'hot loop' functions in Rust, and calling into them using Rackets FFI, and this works quite elegantly, with the modest drawback that the Racket/native transition costs itself noticeable time, so one needs to write large enough chunks in Rust (or C) to yield a net speed-up. What I am still extremely positively surprised about is that it is possible to translate simple Racket functions almost verbatim into Rust - it is no problem at all to maintain Racket's functional style, and in this respect, the language boundary has a very low impedance (but that might become more difficult if more complex memory management is involved, one probably needs to export a constructor-like function which returns a boxed, reference-counted object, and a destructor-like function which calls Rusts 'drop' statement).

Currently, I am pondering is whether it would make sense to explore Common Lisp a bit further, and with this I mean probably SBCL. My opinion might be to a good part be based on half-conscious assumptions and prejudices which I might have picked up in the last 30 years (for example, for a long time I was not aware that the performance difference between C++ and Java has become so small that it becomes harder and harder to justify to implement specific classes of applications in C++).

I get that CL is not at all minimalistic and a fairly large language, and I am wondering what would be the practical advantages and disadvantages of SBCL compared to Racket. My expectation is that the performance would be better, and that a purely functional style would be less well supported. I expect a better support for low-level concurrency primitives than for Racket, but nothing that matches Clojure - here, the 'memory model' seems to be much more similar to C, with everything globally shared and mutable. I'd expect that it is about as easy to call into functions with C API, and I am totally clueless what the costs of such C API calls would be.

I also expect good to very good support for scripting, prototyping, and development of relatively complex low-level algorithms. However, I am also expecting that SBCL is less well documented, much less easy to start with, and perhaps more of mixed quality.

There seems to be a general opinion that Scheme implementations are good for teaching while CL implementations are good for doing 'real work'. I don't have a very clear picture what that means, and this is my main question. My guess is that when I need, for example, a XML or JSON parser library, that it would be very easy to get a high-quality implementation and stunning abstractions accessible from Clojure, and at least possible to access a good implementation in CL, but perhaps less so for Racket.

A hot secret wish I have is something like Clojure's concurrency primitives and immutable data types for Common Lisp. Are there any chances that this wish becomes true?

Pierre Lavoie

65 comments