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.
Author: Mark Watson
Publisher: Springer Science & Business Media
Release Date: 2012-12-06
While creativity plays an important role in the advancement of computer science, great ideas are built on a foundation of practical experience and knowledge. This book presents programming techniques which will be useful in both AI projects and more conventional software engineering endeavors. My primary goal is to enter tain, to introduce new technologies and to provide reusable software modules for the computer programmer who enjoys using programs as models for solutions to hard and interesting problems. If this book succeeds in entertaining, then it will certainly also educate. I selected the example application areas covered here for their difficulty and have provided both program examples for specific applications and (I hope) the method ology and spirit required to master problems for which there is no obvious solution. I developed the example programs on a Macintosh TM using the Macintosh Common LISP TM development system capturing screen images while the example programs were executing. To ensure portability to all Common LISP environments, I have provided a portable graphics library in Chapter 2. All programs in this book are copyrighted by Mark Watson. They can be freely used in any free or commercial software systems if the following notice appears in the fine print of the program's documentation: "This program contains software written by Mark Watson." No royalties are required. The program miniatures contained in this book may not be distributed by posting in source code form on public information networks, or in printed form without my written permission.
* Treats LISP as a language for commercial applications, not a language for academic AI concerns. This could be considered to be a secondary text for the Lisp course that most schools teach . This would appeal to students who sat through a LISP course in college without quite getting it – so a "nostalgia" approach, as in "wow-lisp can be practical..." * Discusses the Lisp programming model and environment. Contains an introduction to the language and gives a thorough overview of all of Common Lisp’s main features. * Designed for experienced programmers no matter what languages they may be coming from and written for a modern audience—programmers who are familiar with languages like Java, Python, and Perl. * Includes several examples of working code that actually does something useful like Web programming and database access.
Author: Peter Norvig
Publisher: Morgan Kaufmann
Release Date: 2014-06-28
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.
Author: Timothy D. Koschmann
Publisher: John Wiley & Sons Inc
Release Date: 1990
A self-contained, intermediate-level introduction to the structure and syntax of Common Lisp, this text is the first based on the draft ANSI standard for Common Lisp. Presents the concepts of object-oriented programming and incorporates the Common Lisp Object-Oriented Systems (CLOS) of the new ANSI standard. Includes end-of-section exercises. The end-of-chapter problems are answered at the back of the book.
This book makes use of the LISP programming language to provide readers with the necessary background to understand and use fuzzy logic to solve simple to medium-complexity real-world problems. It introduces the basics of LISP required to use a Fuzzy LISP programming toolbox, which was specifically implemented by the author to “teach” the theory behind fuzzy logic and at the same time equip readers to use their newly-acquired knowledge to build fuzzy models of increasing complexity. The book fills an important gap in the literature, providing readers with a practice-oriented reference guide to fuzzy logic that offers more complexity than popular books yet is more accessible than other mathematical treatises on the topic. As such, students in first-year university courses with a basic tertiary mathematical background and no previous experience with programming should be able to easily follow the content. The book is intended for students and professionals in the fields of computer science and engineering, as well as disciplines including astronomy, biology, medicine and earth sciences. Software developers may also benefit from this book, which is intended as both an introductory textbook and self-study reference guide to fuzzy logic and its applications. The complete set of functions that make up the Fuzzy LISP programming toolbox can be downloaded from a companion book’s website.
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.
Author: Gregor Kiczales
Publisher: MIT Press
Release Date: 1991
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.
Save time and trouble when using Scala to build object-oriented, functional, and concurrent applications. With more than 250 ready-to-use recipes and 700 code examples, this comprehensive cookbook covers the most common problems you’ll encounter when using the Scala language, libraries, and tools. It’s ideal not only for experienced Scala developers, but also for programmers learning to use this JVM language. Author Alvin Alexander (creator of DevDaily.com) provides solutions based on his experience using Scala for highly scalable, component-based applications that support concurrency and distribution. Packed with real-world scenarios, this book provides recipes for: Strings, numeric types, and control structures Classes, methods, objects, traits, and packaging Functional programming in a variety of situations Collections covering Scala's wealth of classes and methods Concurrency, using the Akka Actors library Using the Scala REPL and the Simple Build Tool (SBT) Web services on both the client and server sides Interacting with SQL and NoSQL databases Best practices in Scala development
Author: Gary D. Knott
Release Date: 2017-06-22
Learn Lisp programming in a data structures context, including tables, functions, forms, expressions, typed-pointers, I/O, garbage collection and some applications. This short primer contains a careful description of the data structures manipulated by Lisp functions. These data structures and others, notably hash tables, are also used in constructing a Lisp interpreter. Interpreting Lisp will be of special interest to those learning and using programming languages and computer architecture as well as data structures. This book will be useful to autodidacts, professional programmers, and computer enthusiasts in a wide variety of fields. What You'll Learn Use the atom table and the number table in Lisp Master expressions, typed pointers, arguments and results in typed pointers, and more Write lambda expressions in Lisp Bind actual values to formal arguments Develop games in Lisp Who This Book Is For Experienced programmers new to Lisp.
Author: Stephen Slade
Publisher: Prentice Hall
Release Date: 1998
LISP was developed in the late 1950s as a language for manipulating symbols. This book presents the Common LISP programming language, which is a version of LISP, and details its range of application, including data structures, computer systems, and compiler design. It provides extensive examples of LISP programs in a variety of areas such as text formatting and spelling correction.
Author: Christian Queinnec
Publisher: Cambridge University Press
Release Date: 2003-12-04
This is a comprehensive account of the semantics and the implementation of the whole Lisp family of languages, namely Lisp, Scheme and related dialects. It describes 11 interpreters and 2 compilers, including very recent techniques of interpretation and compilation. The book is in two parts. The first starts from a simple evaluation function and enriches it with multiple name spaces, continuations and side-effects with commented variants, while at the same time the language used to define these features is reduced to a simple lambda-calculus. Denotational semantics is then naturally introduced. The second part focuses more on implementation techniques and discusses precompilation for fast interpretation: threaded code or bytecode; compilation towards C. Some extensions are also described such as dynamic evaluation, reflection, macros and objects. This will become the new standard reference for people wanting to know more about the Lisp family of languages: how they work, how they are implemented, what their variants are and why such variants exist. The full code is supplied (and also available over the Net). A large bibliography is given as well as a considerable number of exercises. Thus it may also be used by students to accompany second courses on Lisp or Scheme.
Author: Ben Klemens
Publisher: Princeton University Press
Release Date: 2008-10-06
Modeling with Data fully explains how to execute computationally intensive analyses on very large data sets, showing readers how to determine the best methods for solving a variety of different problems, how to create and debug statistical models, and how to run an analysis and evaluate the results. Ben Klemens introduces a set of open and unlimited tools, and uses them to demonstrate data management, analysis, and simulation techniques essential for dealing with large data sets and computationally intensive procedures. He then demonstrates how to easily apply these tools to the many threads of statistical technique, including classical, Bayesian, maximum likelihood, and Monte Carlo methods. Klemens's accessible survey describes these models in a unified and nontraditional manner, providing alternative ways of looking at statistical concepts that often befuddle students. The book includes nearly one hundred sample programs of all kinds. Links to these programs will be available on this page at a later date. Modeling with Data will interest anyone looking for a comprehensive guide to these powerful statistical tools, including researchers and graduate students in the social sciences, biology, engineering, economics, and applied mathematics.