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)