s p o n s o r e d   l i n k s


Common LISP: A Gentle Introduction to Symbolic Computation.pdf

July 3, 2008 · Filed Under Artificial Intelligence  · Tags: , ,

This book is about learning to program in Lisp. Although widely known as the principal language of artificial intelligence research—one of the most advanced areas of computer science—Lisp is an excellent language for beginners. It is increasingly the language of choice in introductory programming courses due to its friendly, interactive environment, rich data structures, and powerful software tools that even a novice can master in short order.

This free ebook is provided by the author himself, David S. Touretzky, Carnegie Mellon University.

Table of Contents:

  • 1. Functions and Data [ Introduction ~ Functions On Numbers ~ Three Kinds of Numbers ~ Order Of Inputs Is Important ~ Symbols ~ The Special Symbols T and NIL ~ Some Simple Predicates ~ The EQUAL Predicate ~ Putting Functions Together ~ Defining ADD1 ~ Defining ADD2 ~ Defining TWOP ~ Defining ONEMOREP ~ The NOT Predicate ~ Negating A Predicate ~ Number of Inputs to a Function ~ Errors ~ The History of Lisp ]
  • 2. Lists [ Lists Are The Most Versatile Data Type ~ What Do Lists Look Like? ~ Lists of One Element ~ Nested Lists ~ Length of Lists ~ NIL: The Empty List ~ Equality of Lists ~ FIRST, SECOND, THIRD, and REST ~ Functions Operate On Pointers ~ CAR and CDR ~ The CDR of a Single-Element List ~ Combinations of CAR and CDR ~ CAR and CDR of Nested Lists ~ CAR and CDR of NIL ~ CONS ~ CONS and the Empty List ~ Building Nested Lists With CONS ~ CONS Can Build Lists From Scratch ~ Symmetry of CONS and CAR/CDR ~ LIST ~ Replacing the First Element of a List ~ List Predicates ~ Unary Arithmetic with Lists ~ Nonlist Cons Structures ~ Circular Lists ~ Length of Nonlist Cons Structures ]
  • 3. EVAL Notation [ Introduction ~ The EVAL Function ~ EVAL Notation Can Do Anything Box Notation Can Do ~ Evaluation Rules Define the Behavior of EVAL ~ Defining Functions in EVAL Notation ~ Variables ~ Evaluating Symbols ~ Using Symbols and Lists as Data ~ The Problem of Misquoting ~ Three Ways to Make Lists ~ Four Ways to Misdefine a Function ~ More About Variables ~ Lisp on the Computer ~ Running Lisp ~ The Read-Eval-Print Loop ~ Recovering From Errors ~ Functions of No Arguments ~ The QUOTE Special Function ~ Internal Structure of Symbols ~ Lambda Notation ~ Scope of Variables ~ EVAL and APPLY ]
  • 4. Conditionals [ Introduction ~ The IF Special Function ~ The COND Macro ~ Using T as a Test ~ Two More Examples of COND ~ COND and Parenthesis Errors ~ The AND and OR Macros ~ Evaluating AND and OR ~ Building Complex Predicates ~ Why AND and OR are Conditionals ~ Conditionals are Interchangeable ~ Lisp Toolkit: STEP ~ Boolean Functions ~ Truth Tables ~ DeMorgan's Theorem ]
  • 5. Variables and Side Effects [ Introduction ~ Local and Global Variables ~ SETF Assigns a Value to a Variable ~ Side Effects ~ The LET Special Function ~ The LET* Special Function ~ Side Effects Can Cause Bugs ~ Lisp Toolkit: DOCUMENTATION and APROPOS ~ Symbols and Value Cells ~ Distinguishing Local from Global Variables ~ Binding, Scoping, and Assignment ]
  • 6. List Data Structures [ Introduction ~ Parenthesis Notation vs. Cons Cell Notation ~ The APPEND Function ~ Comparing CONS, LIST, and APPEND ~ More Functions on Lists ~ REVERSE ~ NTH and NTHCDR ~ LAST ~ REMOVE ~ Lists as Sets ~ MEMBER ~ INTERSECTION ~ UNION ~ SET-DIFFERENCE ~ SUBSETP ~ Programming With Sets ~ Lists As Tables ~ ASSOC ~ RASSOC ~ Programming With Tables ~ Lisp Toolkit: SDRAW ~ Trees ~ SUBST ~ SUBLIS ~ Efficiency of List Operations ~ Shared Structure ~ Equality of Objects ~ Keyword Arguments ]
  • 7. Applicative Programming [ Introduction ~ FUNCALL ~ The MAPCAR Operator ~ Manipulating Tables With MAPCAR ~ Lambda Expressions ~ The FIND-IF Operator ~ Writing ASSOC With FIND-IF ~ REMOVE-IF and REMOVE-IF-NOT ~ The REDUCE Operator ~ EVERY ~ Lisp Toolkit: TRACE and DTRACE ~ Operating on Multiple Lists ~ The FUNCTION Special Function ~ Keyword Arguments to Applicative Operators ~ Scoping and Lexical Closures ~ Writing An Applicative Operator ~ Functions That Make Functions ]
  • 8. Recursion [ Introduction ~ Martin and the Dragon ~ A Function to Search for Odd Numbers ~ Martin Visits The Dragon Again ~ A Lisp Version of the Factorial Function ~ The Dragon's Dream ~ A Recursive Function for Counting Slices of Bread ~ The Three Rules of Recursion ~ Martin Discovers Infinite Recursion ~ Infinite Recursion in Lisp ~ Recursion Templates ~ Double-Test Tail Recursion ~ Single-Test Tail Recursion ~ Augmenting Recursion ~ Variations on the Basic Templates ~ List-Consing Recursion ~ Simultaneous Recursion on Several Variables ~ Conditional Augmentation ~ Multiple Recursion ~ Trees and CAR/CDR Recursion ~ Using Helping Functions ~ Recursion in Art and Literature ~ Toolkit: The Debugger ~ Advantages of Tail Recursion ~ Writing New Applicative Operators ~ The LABELS Special Function ~ Recursive Data Structures ]
  • 9. Output [ Introduction ~ Character Strings ~ The FORMAT Function ~ The READ Function ~ The YES-OR-NO-P Function ~ Reading Files with WITH-OPEN-FILE ~ Writing Files with WITH-OPEN-FILE ~ Keyboard Exercise ~ Toolkit: DRIBBLE ~ Advanced Topics ~ Parameters to Format Directives ~ Additional Format Directives ~ The Lisp 1.5 Output Primitives ~ Handling End-of-File Conditions ~ Printing in Dot Notation ~ Hybrid Notation ]
  • 10. Assignment [ Introduction ~ Updating a Global Variable ~ Stereotypical Updating Methods ~ The INCF and DECF Macros ~ The PUSH and POP Macros ~ Updating Local Variables ~ WHEN and UNLESS ~ Generalized Variables ~ Case Study: A Tic-Tac-Toe Player ~ Lisp Toolkit: BREAK and ERROR ~ Do-It-Yourself List Surgery ~ Destructive Operations on Lists ~ NCONC ~ NSUBST ~ Other Destructive Functions ~ Programming With Destructive Operations ~ SETQ and SET ]
  • 11. Iteration and Block Structure [ Introduction ~ DOTIMES and DOLIST ~ Exiting the Body of a Loop ~ Comparing Recursive and Iterative Search ~ Building Up Results With Assignment ~ Comparing DOLIST with MAPCAR and Recursion ~ The DO Macro ~ Advantages of Implicit Assignment ~ The DO* Macro ~ Infinite Loops with DO ~ Implicit Blocks ~ Lisp Toolkit: TIME ~ PROG1, PROG2, and PROGN ~ Optional Arguments ~ Rest Arguments ~ Keyword Arguments ~ Auxiliary Variables ]
  • 12. Structures and The Type System [ Introduction ~ TYPEP and TYPE-OF ~ Defining Structures ~ Type Predicates for Structures ~ Accessing and Modifying Structures ~ Keyword Arguments to Constructor Functions ~ Changing Structure Definitions ~ Lisp Toolkit: DESCRIBE and INSPECT ~ Print Functions for Structures ~ Equality of Structures ~ Inheritance from Other Structures ]
  • 13. Arrays, Hash Tables, And Property Lists [ Introduction ~ Creating an Array ~ Printing Arrays ~ Accessing and Modifying Array Elements ~ Creating Arrays With MAKE-ARRAY ~ Strings as Vectors ~ Hash Tables ~ Property Lists ~ Programming With Property Lists ~ Lisp Toolkit: ROOM ~ Property List Cells ~ More On Sequences ]
  • 14. Macros and Compilation [ Introduction ~ Macros as Shorthand ~ Macro Expansion ~ Defining a Macro ~ Macros as Syntactic Extensions ~ The Backquote Character ~ Splicing With Backquote ~ The Compiler ~ Compilation and Macro Expansion ~ Compiling Entire Programs ~ Case Study: Finite State Machines ~ Lisp Toolkit: PPMX ~ The &BODY Lambda-List Keyword ~ Destructuring Lambda Lists ~ Macros and Lexical Scoping ~ Historical Significance of Macros ~ Dynamic Scoping ~ DEFVAR, DEFPARAMETER, DEFCONSTANT ~ Rebinding Special Variables ]

This ebook is available FREE at CMU website, we merely collect the information, we are neither affiliated with the author(s), the website and any brand nor responsible for its content and change of content. (Read our disclaimer here or here before you download the document from the website written above by clicking the below link).

Download free principal language of the AI ebook: Common LISP: A Gentle Introduction to Symbolic Computation.pdf (587 pages pdf file, 1.2 MB).

Related posts

You might also be interested in reading:
advance data structures, surgery

Disclaimer

http://www.onlinefreeebooks.net - provides you collection of links to other websites containing ebooks/manuals/cheatsheets either for computer geeks, technicians, automotive enthusiasts or programmers. We merely take the power of Google Search to find those materials and link to it. NONE OF THOSE MATERIALS ARE HOSTED IN THIS SERVER NOR UPLOADED BY ME IN SOMEONE'S SERVERS.

We are neither affiliated with authors and brands nor responsible for its content and change of content.

Information contained herein is provided "as is" without warranty of any kind, either expressed or implied, including any warranty of merchantability or fitness for a particular purpose. In no event shall ANYONE be held liable for any loss of profit, special, incidental, consequential, or other similar claims.

Comments

Leave a Reply