How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
Daniel P. Friedman, Matthias Felleisen
"drawings by Duane Bibby" foreword by Gerald J. Sussman "I learned more about LISP from this book than I have from any of the other LISP books I've read over the years. . . . While other books will tell you the mechanics of LISP, they can leave you largely uninformed on the style of problem-solving for which LISP is optimized. The Little LISPer teaches you how to think in the LISP language. . . an inexpensive, enjoyable introduction." -- Gregg Williams, Byte The notion that "thinking about computing is one of the most exciting things the human mind can do" sets both "The Little Schemer" (formerly known as "The Little LISPer" ) and its new companion volume, "The Seasoned Schemer," apart from other books on LISP. The authors' enthusiasm for their subject is compelling as they present abstract concepts in a humorous and easy-to-grasp fashion. Together, these books will open new doors of thought to anyone who wants to find out what computing is really about. "The Little Schemer" introduces computing as an extension of arithmetic and algebra -- things that everyone studies in grade school and high school. It introduces programs as recursive functions and briefly discusses the limits of what computers can do. The authors use the programming language Scheme, and interesting foods to illustrate these abstract ideas. "The Seasoned Schemer" informs the reader about additional dimensions of computing: functions as values, change of state, and exceptional cases. "The Little LISPer" has been a popular introduction to LISP for many years. It had appeared in French and Japanese. "The Little Schemer" and "The SeasonedSchemer" are worthy successors and will prove equally popular as textbooks for Scheme courses as well as companion texts for any complete introductory course in Computer Science. Download DrScheme - a graphical environment for developing Scheme programs
Paradigms of AI Programming is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-art Common Lisp, the book teaches students and professionals how to build and debug robust practical programs, while demonstrating superior programming style and important AI concepts. The author strongly emphasizes the practical performance issues involved in writing real working programs of significant size. Chapters on troubleshooting and efficiency are included, along with a discussion of the fundamentals of object-oriented programming and a description of the main CLOS functions. This volume is an excellent text for a course on AI programming, a useful supplement for general AI courses and an indispensable reference for the professional programmer.
Gregor Kiczales, Jim Des Rivières, Daniel Gureasko Bobrow
The CLOS metaobject protocol is an elegant, high-performance extension to the CommonLisp Object System. The authors, who developed the metaobject protocol and who were among the group that developed CLOS, introduce this new approach to programming language design, describe its evolution and design principles, and present a formal specification of a metaobject protocol for CLOS.Kiczales, des Rivières, and Bobrow show that the "art of metaobject protocol design" lies in creating a synthetic combination of object-oriented and reflective techniques that can be applied under existing software engineering considerations to yield a new approach to programming language design that meets a broad set of design criteria.One of the major benefits of including the metaobject protocol in programming languages is that it allows users to adjust the language to better suit their needs. Metaobject protocols also disprove the adage that adding more flexibility to a programming language reduces its performance. In presenting the principles of metaobject protocols, the authors work with actual code for a simplified implementation of CLOS and its metaobject protocol, providing an opportunity for the reader to gain hands-on experience with the design process. They also include a number of exercises that address important concerns and open issues.Gregor Kiczales and Jim des Rivières, are Members of the Research Staff, and Daniel Bobrow is a Research Fellow, in the System Sciences Laboratory at Xerox Palo Alto Research Center.
Teaching users new and more powerful ways of thinking about programs, this two-in-one text contains a tutorial--full of examples--that explains all the essential concepts of Lisp programming, plus an up-to-date summary of ANSI Common Lisp. Informative and fun, it gives users everything they need to start writing programs in Lisp and highlights innovative Lisp features.
Let Over Lambda is one of the most hardcore computer programming books out there. Starting with the fundamentals, it describes the most advanced features of the most advanced language: Common Lisp. Only the top percentile of programmers use lisp and if you can understand this book you are in the top percentile of lisp programmers. If you are looking for a dry coding manual that re-hashes common-sense techniques in whatever langue du jour, this book is not for you. This book is about pushing the boundaries of what we know about programming. While this book teaches useful skills that can help solve your programming problems today and now, it has also been designed to be entertaining and inspiring. If you have ever wondered what lisp or even programming itself is really about, this is the book you have been looking for.
Patrick Henry Winston, Berthold Horn
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 Artificial Intelligence technology. The Knowledge You Need The new edition retains the broad coverage of previous editions that has made this book popular both with beginners and with more advanced readers -- coverage ranging from the basics of the language to detailed examples showing Lisp in practice. Based on the CommonLisp standard, this book also introduces CommonLisp's object system, CLOS, and the productivity-promoting techniques enabled by object-oriented programming. Application examples drawn from expert systems, natural language interfaces, and symbolic mathematics are featured, and new applications dealing with probability bounds, project simulation, and visual object recognition are introduced. Special Features of this Edition Based on extensive teaching experience Explains key problem solving paradigms, such as search, forward chaining, and problem reduction Discusses constraint propagation, backward chaining, and key ideas in Prolog Emphasizes procedure and data abstraction, and other points of programming style and practice Covers cliches, mapping, streams, delayed evaluation, and techniques for better and faster procedure definition 0201083191B04062001
Lisp is often thought of as an academic language, but it need not be. This is the first book that introduces Lisp as a language for the real world. Practical Common Lisp presents a thorough introduction to Common Lisp, providing you with an overall understanding of the language features and how they work. Over a third of the book is devoted to practical examples, such as the core of a spam filter and a web application for browsing MP3s and streaming them via the Shoutcast protocol to any standard MP3 client software (e.g., iTunes, XMMS, or WinAmp). In other "practical" chapters, author Peter Seibel demonstrates how to build a simple but flexible in-memory database, how to parse binary files, and how to build a unit test framework in 26 lines of code.
Provides information on the core concepts of Lisp progamming, covering such topics as recursion, input/output, object-oriented programming, and macros, and offers instructions on creating complete Lisp-based games, including a text adventure, an evolution simulation, and a robot battle.
Find solutions to problems and answers to questions you are likely to encounter when writing real-world applications in Common Lisp. This book covers areas as diverse as web programming, databases, graphical user interfaces, integration with other programming languages, multi-threading, and mobile devices as well as debugging techniques and optimization, to name just a few. Written by an author who has used Common Lisp in many successful commercial projects over more than a decade, Common Lisp Recipes is also the first Common Lisp book to tackle such advanced topics as environment access, logical pathnames, Gray streams, delivery of executables, pretty printing, setf expansions, or changing the syntax of Common Lisp. The book is organized around specific problems or questions each followed by ready-to-use example solutions and clear explanations of the concepts involved, plus pointers to alternatives and more information. Each recipe can be read independently of the others and thus the book will earn a special place on your bookshelf as a reference work you always want to have within reach. Common Lisp Recipes is aimed at programmers who are already familiar with Common Lisp to a certain extent but do not yet have the experience you typically only get from years of hacking in a specific computer language. It is written in a style that mixes hands-on no-frills pragmatism with precise information and prudent mentorship. If you feel attracted to Common Lisp's mix of breathtaking features and down-to-earth utilitarianism, you'll also like this book.
Luke VanderHart, Stuart Sierra
Clojure is the best all-purpose programming language that I have yet to encounter in my software development career. When I first began learning it, I found myself thrilled and satisfied in ways that I can only recall experiencing once beforeùwhen I received my first computer, and entered those first few commands and watched in delight as it responded with precision to my instructions. Over the years, of course, much of the charm of programming wore off. The excitement of imposing my will on a complex machine gradually became lost as I repeatedly slogged through the same exercises and patterns, overcoming with difficulty the inherent complexities of ever-larger systems. But with Clojure, I noticed a curious shift. I began, once more, to enjoy the act of programming. Not just the act of creation and planning, which I've always liked, but even implementing low-level, "everyday" routines. Programming in Clojure is like removing a restrictive suitùonce more, you'll feel like you are actually in control, expressing yourself to the program directly rather than through layers of vaguely necessary indirection. You will be impressed and pleased with Clojure's expressiveness, allowing scope for creativity and original abstractions. Instead of programs becoming more complex and difficult to understand as they grow, Clojure programs become simpler and more expressive. More than that, Clojure will encourage you to try things that are simply too complicated to do regularly in other languages: concurrency, immutability, and lazy data structures. Plus since it runs on the JVM, you can use the same platform, libraries, and tools that you are comfortable with. I hope that this book opens the same doors for you as it did for me, and shows Clojure to be the fun, expressive, and mature language that I have found it to be. Sincerely, Luke VanderHart
This entertaining book is designed for the reader who enjoys thinking about new technologies and how to use them in solving practical problems. It provides reusable software modules for specific applications, as well as the methodology and spirit required to master problems for which there is no obvious solution. This book is for AI novices who want to learn new technologies and increase their capabilities and for AI professionals who want reusable application-oriented software modules to use in building their own systems. Each chapter contains background information and theory, a discussion of sample programs, program listings and output, additional information on the sample programs, and suggested exercises. Chapters use engaging real-world examples such as speech and handwriting recognition using neural networks, natural language processing with an example database interface, expert system shells, computer chess game, chaos theory, and fractal generation programs. The text assumes a reading knowledge of LISP and the implementation ability of a set of graphics primitives used for simple graphics operations. While all examples are implemented in Common LISP, the examples are also portable to other LISP dialects. The neural network and fractal examples are also portable to other languages such as C and Pascal.
Brian Harvey, Matthew Wright
This lively introduction to computer science and computer programming in Scheme is for non-computer science majors with a strong interest in the subject and for computer science majors who lack prior programming experience. The text allows the student to experience the computer as a tool for expressing ideas, not as a frustrating set of mathematical obstacles. This goal is supported by the use of Scheme, a modern dialect of Lisp, designed to emphasize symbolic programming.