Demonstrate Lisp Potpourri
CIS447
Showing MEMBER, AND, OR
[2]> (member '(a) '((a)(b)))
NIL
[3]> (member '(a) '((a)(b)) :test #'equal)
((A) (B))
[4]> (length '(a b c d))
4
[5]> (and 1 2)
2
[6]> (and (> 7 5)(< -3 0))
T
[7]> (and '(< 7 5) 'error)
ERROR
[8]> (and (< 7 5) 'error)
NIL
[9]> (or (< 7 5) 'error)
ERROR
[10]> (= (length '(a b c)) (length '(e f g)))
T
Showing LET & LET*
[2]> (let ((x 1)(y 5)(z 11))
(print x)(print y) z)
1
5
11
[3]> (let* ((x 3)(y (* 4 x))(z (/ y 3))
(print x)(Print y)(print z))
)
NIL
[4]> (let* ((x 3)(y (* 4 x))(z (/ y 3)))
(print x)(print y)(print z))
3
12
4
4
[5]> (let ((x 3)(y (* 4 x))(z (/ y 3)))
(print x)(print y)(print z))
*** - EVAL: variable X has no value
Showing WHEN, UNLESS, COMMENTING
2]> (when t 3)
3
[3]> (when nil 3)
NIL
[4]> (unless t 3)
NIL
[5]> (unless nil 3)
3
[6]> (unless (< 5 3) 'greater)
GREATER
[7]> (unless (< 3 5) 'greater)
NIL
[8]> (+ 2 3)
5
[9]> #<OUTPUT BUFFERED FILE-STREAM CHARACTER #P"ex3" @1>
[2]> #<OUTPUT BUFFERED FILE-STREAM CHARACTER #P"ex3" @1>
[2]> (load "comment.cl")
;; Loading file comment.cl ...
;; Loading of file comment.cl is finished.
T
[3]> (func 3 4)
2
[4]> (func 4 3)
GREATER
[5]> (func 3 3)
MUST-BE-EQUAL
[6]> (dribble)
Showing DEBUGGING with Print
[2]> (load "debug-load.cl")
;; Loading file debug-load.cl ...
"f1 loaded"
*** - symbol SYSTEM::*COMPILING-FROM-FILE* has no value
1. Break [3]> :a
[4]> (dribble)
#<OUTPUT BUFFERED FILE-STREAM CHARACTER #P"ex3" @1>
[2]> (load "dl2.cl")
;; Loading file dl2.cl ...
"f1 loaded"
"f2 loaded"
"f3 loaded"
*** - READ from #<INPUT BUFFERED FILE-STREAM CHARACTER #P"dl2.cl" @18>: an object cannot start with #\)
1. Break [3]> :a
[4]> (dribble)
#<OUTPUT BUFFERED FILE-STREAM CHARACTER #P"ex3" @1>
[2]> (load "dl3.cl")
;; Loading file dl3.cl ...
"f1 loaded"
"f2 loaded"
"f3 loaded"
"f4 loaded"
"f5 loaded"
;; Loading of file dl3.cl is finished.
T
[3]> (f5 7)
-1
[4]> (f1 3)
3
[5]> (f2 3)
17
[6]> (f3 3)
4
[7]> (f4 3)
T
[8]> (f5 3)
-1
[9]> (dribble)
#<OUTPUT BUFFERED FILE-STREAM CHARACTER #P"ex3" @1>
[2]> (load "db.cl")
Showing TRACE & UNTRACE
;; Loading file db.cl ...
;; Loading of file db.cl is finished.
T
[3]> (mult-all '(1 2 3 4 5 6 7 8))
(2 12 30 56)
[4]> (trace mult-all mult2)
;; Tracing function MULT-ALL.
;; Tracing function MULT2.
(MULT-ALL MULT2)
[5]> (mult-all '(1 2 3 4 5 6 7 8))
1. Trace: (MULT-ALL '(1 2 3 4 5 6 7 8))
2. Trace: (MULT2 '1 '2)
2. Trace: MULT2 ==> 2
2. Trace: (MULT-ALL '(3 4 5 6 7 8))
3. Trace: (MULT2 '3 '4)
3. Trace: MULT2 ==> 12
3. Trace: (MULT-ALL '(5 6 7 8))
4. Trace: (MULT2 '5 '6)
4. Trace: MULT2 ==> 30
4. Trace: (MULT-ALL '(7 8))
5. Trace: (MULT2 '7 '8)
5. Trace: MULT2 ==> 56
5. Trace: (MULT-ALL 'NIL)
5. Trace: MULT-ALL ==> NIL
4. Trace: MULT-ALL ==> (56)
3. Trace: MULT-ALL ==> (30 56)
2. Trace: MULT-ALL ==> (12 30 56)
1. Trace: MULT-ALL ==> (2 12 30 56)
(2 12 30 56)
[6]> (untrace)
(MULT2 MULT-ALL)
[7]> (mult-all '(1 2 3 4 5 6 7 8))
(2 12 30 56)
[8]> (dribble)