Course: Introduction to Lisp on sdf
Instructor: jgw
Book:
"COMMON LISP: A Gentle Introduction to Symbolic Computation"
by David S. Touretzky copyright 1990
ANSWERS to the Questions
===============================================
6.10 (defun PALINDROMEP (x) (equal x (reverse x)))
ex: (PALINDROMEP '(a b c b a))
-------------
6.22 (setf A '(SOAP WATER))
(union A '(no soap radio))=> (soap radio)
(intersection A (reverse A)) => (water soap)
(set-difference A '(stop for water))=>(stop for)
(set-difference A A) => NIL
(member 'soap A) => (SOAP WATER)
(member 'water A) => (WATER)
(member 'washclothe A) => NIL
------------------------------
6.29
length
-----------------------------
6.34
(setf ATLAS
((pennsylvania pittsubrgh johnstown)
(new-jersey newark princeton trenton)
(ohio columbus)))
(defun GET-CITY (x)
(rest (assoc x ATLAS))
================================================
QUESTIONS about reading material
============================================
pg 164
example shows:
(defun add-to-end (x e)
"Adds element E to the end of list X."
(append x (list e)))
(add-to-end '(a b c) 'd) => (A B C D)
So I just wanted to make sure: since 'e', defined within defun inputs
(x e), makes 'd', of (add-to-end '(a b c) 'd), a list? Otherwise if 'd'
was just appended it wouldn't be a list.
Or does 'd' become a list when it's declared as list in (append x (list
e))) as part of the 'defun' function?
---------------------
pg 164
example shows
> (cons '(here today) '(gone tomorrow))
((HERE TODAY) GONE TOMORROW)
I'm still not sure where the left parenthesis went that was before
'gone' i.e '(gone.
-------------------------
also on pg 164
example shows
> (append '(here today) '(gone tomorrow))
(HERE TODAY GONE TOMORROW)
Does 'GONE TOMORROW' have a CAR and a CDR? That's probably obvious
judging by figure 6.1.
-----------------------
pg 182 Example showed (quality 'red) => color where element
queried is (red . color). Why doesn't (quality 'red) => . color, with
the period, since the table entry is (red . color)?
COMMENTS
============================================
Notes; Interesting the Lisp adds the space to a list. Example shown:
(append '(friends romans) '(and countrymen))
No space between 'romans' and 'and' in the append function but it's
there in the output:
(friends romans and coutrymen)
I wonder how this will be used?
-------------------------------
"REMOVE is a non destructive function. ... The result returned by
REMOVE is a new list." pg 168
[That's probably significant.]
-----------------------------------
Okay! I tried to do it. I tried to think in parenthesis,
which appears to be the most important concept of the 'Introductory'
Tourtezky instructional method. However it still eludes me to an extent.
A dedicated student should apply more focus on CAR, CDR, and Eval
Notation.
Fianally! Got Clisp and ECL installed on FreeBSD. MegaPOP
dialup service didn't update zone files.