Errata 239-5 Seibel (corrected in the 2nd printing)
Page |
Original Sentence |
Corrected Sentence |
2 |
For
most languages, however, they payoff isnÕt so easily categorized; it has to
do with subjective criteria such as how it feels to use the language. |
For
most languages, however, the payoff isnÕt so easily categorized; it has to do
with subjective criteria such as how it feels to use the language. |
4 |
If
youÕre coming from C++ and Java (or from statically typed functional
languages such as Haskel and ML) and refuse to consider living without static
type checks, you might as well put this book down now. |
If
youÕre coming from C++ and Java (or from statically typed functional
languages such as Haskell and ML) and refuse to consider living without
static type checks, you might as well put this book down now. |
11 |
Since
the Lisp in a Box packaging is designed to get new Lispers up and running in
a first-rate Lisp development environment with minimum hassle, all you need
to do to get it running is to grab the appropriate package for your operating
system and the preferred Lisp from the Lisp in a
Box Web site listed in Chapter 32 and then follow the installation
instructions. |
Since
the Lisp in a Box packaging is designed to get new Lispers up and running in
a first-rate Lisp development environment with minimum hassle, all you need
to do to get it running is to grab the appropriate package for your operating
system and the preferred Lisp from the Lisp in a
Box Web site listed in Chapter 32 and then follow the installation
instructions. |
26 |
CL-USER>
(save-db "~/my-cds.db") |
CL-USER>
(save-db "/home/peter/my-cds.db") |
36 |
If
you pass MACROEXPAND-1, a form representing a macro call, it will call the
macro code with appropriate arguments and return the expansion. |
If
you pass MACROEXPAND-1 a form representing a macro call, it will call the
macro code with appropriate arguments and return the expansion. |
41 |
10.
One other rarely used kind of Lisp form is a list whose first element is a lambda
form.
IÕll discuss this kind of form in Chapter 5. |
10.
One other rarely used kind of Lisp form is a list whose first element is a lambda
expression.
IÕll discuss this kind of form in Chapter 5. |
83 |
Control
constructs are the other main kind of looping constructs. Common LispÕs
looping facilities are—in addition to being quite powerful and
flexible—an interesting lesson in the have-your-cake-and-eat-it-too
style of programming that macros provide. |
Looping
constructs are the other main kind of control constructs. Common LispÕs
looping facilities are—in addition to being quite powerful and
flexible—an interesting lesson in the have-your-cake-and-eat-it-too
style of programming that macros provide. |
87 |
(format t "Waiting
...~%") (sleep 1)) |
(format t
"Waiting~%") (sleep 60)) |
93 |
But
if you look at the expansion, the list as a whole doesnÕt appear in the
expansion; the three element are split up and put in different places. |
But
if you look at the expansion, the list as a whole doesnÕt appear in the
expansion; the three elements are split up and put in different places. |
122 |
The
read syntax for characters objects is simple: #\ followed by the desired
character. Thus, #\x is the character x. |
The
read syntax for characters is simple: #\ followed by the desired character.
Thus, #\x is the character x. |
186 |
(error
"list-directory not implemented")) |
(error
"file-exists-p not implemented")) |
187 |
The
:test argument, if provided, specifies another function thatÕs invoked on
each pathname before the main function is; the main function will be called
only if the test function
returns true. |
The
:test argument, if provided, specifies another function thatÕs invoked oneach
pathname before the main function is; the main function will be called only
if the test function
returns true. The default value for the :test argument is a function that
always returns true, created by calling the standard function CONSTANTLY. |
320 |
8.
Unfortunately, the language itself doesnÕt falways provide a good model in
this respect: |
Unfortunately,
the language itself doesnÕt always provide a good model in this respect: |
322 |
This
way, at the end of the LET, after CALL-NEXT-METHOD returns, the old value of
*in-progress-objects* will be restored, effectively popping the object of the
stack. |
This
way, at the end of the LET, after CALL-NEXT-METHOD returns, the old value of
*in-progress-objects* will be restored, effectively popping the object of the
stack. |
340 |
Putting
all these variations together, the ID3 format uses four ways to read and
write strings—two characters crossed with two ways of delimiting the
string data. |
Putting
all these variations together, the ID3 format uses four ways to read and
write strings—two characters crossed with two ways of delimiting the
string data. |
344 |
(with-open-file (in file) |
(with-open-file (in file :element-type
'(unsigned-byte 8)) |
356 |
To
make matters worse, the number of bytes used to encode description is
dependent on the encoding. |
To
make matters worse, the number of bytes
used to encode text is dependent on the encoding. |
356 |
(defun encoded-string-length
(string encoding terminated) (let ((characters (+
(length string) (if terminated 1 0)))) (* characters (ecase
encoding (0 1) (1 2))))) |
(defun
encoded-string-length (string encoding terminated) (defun
encoded-string-length (string encoding terminated) (let ((characters (+
(length string) (if terminated 1 0) (ecase (encoding (0 0) (1
1)))))) (* characters (ecase
encoding (0 1) (1 2))))) |
361 |
"Psychedelic"
"Rave" "Showtunes" "Trailer" "Lo-Fi"
"Tribal" |
"Psychadelic"
"Rave" "Showtunes" "Trailer" "Lo-Fi"
"Tribal" |
361 |
"Slow Rock"
"Big Band" "Chorus" "Easy Listening"
"Acoustic" "Humor" |
"Slow Rock"
"Big Band" "Chorus" "Easy Listening"
"Acoustic" "Humour" |
375 |
(:input
::type "reset" :value "Reset")))))))))) |
(:input
:type "reset" :value "Reset")))))))))) |
389 |
2.
As always, the first causality of concise exposition in programming books is
proper error handling; in production code youÕd probably want to define your
own error type, such as the following, and signal it instead: |
2.
As always, the first casualty of concise exposition in programming books is
proper error handling; in production code youÕd probably want to define your
own error type, such as the following, and signal it instead: |
418 |
The
call to update-current-if-necessary will take care of setting current-song to
NIL. |
The
call to update-current-if-necessary will take care of setting current-song to
emptyplaylist- song. |
432 |
Obviously,
if you generate HTML by just printing strings to a stream, then itÕs up to
you to replace any occurrences of those
characters in the string with the appropriate escape sequences, <,
> and &. |
Obviously,
if you generate HTML by just printing strings to a stream, then itÕs up to
you to replace any occurrences of those
characters in the string with the appropriate escape sequences, <
> and &. |
432 |
2.
Well, almost every tag. Certain tags such as IMG and BR donÕt. YouÕll deal
with those in the section ŌThe Basic Evaluation Rule.Ķ |
2.
Well, almost every tag. Certain tags such as IMG and BR arenÕt. YouÕll deal
with those in the section ŌThe Basic Evaluation Rule.Ķ |