The Art of Lisp Programming

Many of us already have at least a passing acquaintance with procedural languages such as BASIC or Pascal, but may not have met a functional language like Lisp before. Using the same enjoyable and sometimes quirky style that they employed so successfully in "The Art of C-Programming", Robi...

Full description

Bibliographic Details
Main Authors: Jones, Robin, Maynard, Clive (Author), Stewart, Ian (Author)
Format: eBook
Language:English
Published: London Springer London 1990, 1990
Edition:1st ed. 1990
Subjects:
Online Access:
Collection: Springer Book Archives -2004 - Collection details see MPG.ReNa
Table of Contents:
  • 1 Some Basic Ideas
  • Lists
  • Representing Lists
  • The Interpreter
  • Functions
  • Two More Primitives
  • Constants and Variables
  • S-Expressions
  • Postscript
  • Exercises 1
  • Answers
  • 2 List Functions
  • Splitting Lists
  • car and cdr
  • Setting Up Lists
  • setq
  • A Piece of Pedantry
  • Head and Tail Revisited
  • cons
  • Postscript
  • Exercises 2
  • Answers
  • 3 Predicates
  • cond
  • Boolean Functions
  • Exercises 3
  • Answers
  • 4 Recursion
  • Powers
  • Boolean Functions Revisited
  • eq
  • Meanwhile Back at the Problem...
  • null
  • AND and OR
  • flat
  • first
  • rest
  • The Fly in the Ointment
  • append and list
  • Postscript
  • Exercises 4
  • Answers
  • 5 A Look Back (and Forward)
  • Variables: a Sense of Place
  • Variable Scope
  • Variable Binding
  • Free Variables
  • Lexical Scoping
  • A Software Engineering Problem
  • setq
  • System Variables
  • Exercises 5
  • Answers
  • 6 Sets and Lists
  • Sets of Numbers
  • The Set Functions
  • Intersection
  • disjoint-p
  • Getting the File Back
  • EOF-ERROR-P and EOF-VALUE
  • Exercises 11
  • Answers
  • 12 Data Structures
  • Association Lists
  • pairlis
  • The Dot Notation
  • assoc
  • rassoc
  • aeons
  • setf
  • Database Manipulation
  • Trees
  • Binary Trees
  • The Searching Problem
  • Implementing a Binary Tree
  • Growing a Tree
  • Searching the Tree
  • Stacks
  • push
  • pop
  • Exercises 12
  • Answers
  • 13 Arrays, Strings and Structures
  • Arrays
  • Changing an Array Element
  • Multidimensional Arrays
  • Strings
  • char
  • string=
  • string
  • Subsets
  • Complement
  • Union
  • Exercises 6
  • Answers
  • 7 Input
  • read
  • read-line
  • Single Characters
  • More About #
  • Yes or No Responses
  • Using the read Primitives
  • Exercises 7
  • Answers
  • 8 Output
  • format
  • The Control String
  • Printing Values
  • Format Directives
  • Using Arguments as Parameters
  • Tabs
  • Other Output Functions
  • The Telephone Index Again
  • The read-eval-print Loop
  • The Program-Data Distinction
  • Exercises 8
  • Answers
  • 9 Iterative Constructs
  • loop
  • return
  • do
  • The Size of a List
  • Iteration v. Recursion
  • dotimes
  • dolist
  • Mapping
  • mapcar
  • Exercises 9
  • Answers
  • 10 More About Program Control
  • if
  • when
  • unless
  • case
  • Synonyms
  • Defaults
  • Some New Control Constructs
  • let
  • flet
  • progl to progrc
  • The Lambda Notation
  • Exercises 10
  • Answers
  • 11 File Handling
  • Pathnames
  • merge-pathnames
  • Streams
  • Opening and ClosingFiles
  • Keyword Arguments
  • The Body
  • Other Keyword Arguments