# Common Lisp! John Paxton Montana State University Summer 2003.

## Presentation on theme: "Common Lisp! John Paxton Montana State University Summer 2003."— Presentation transcript:

Common Lisp! John Paxton Montana State University Summer 2003

Montana Statistics 2001 Population: 904,433. In contrast, El Salvador has a population of 6,353,681. 90.6% White 6.2% Native American 2.0% Hispanic or Latino Bozeman Population: 27,509.

Montana Statistics Land Area: 376,980 square kilometers. In contrast, El Salvador has 21,040 square kilometers. Fun fact: The greatest recorded 24 hour temperature change occurred in Loma, Montana in 1972. The temperature rose from -49 F to 54 F!

Material Defining Functions Local Variables Using Files Predicates Boolean Operands Lisp Representation

let > (let ((a 1)(b 2)) (+ a b) ) 3 > (+ a b) - EVAL: variable A has no value

let* > (let* ((a 1)(b (+ a 1))) (+ a b) ) 3

Questions 1.Write a function called gringo-dictionary that finds the spanish equivalent for an english word passed in. 2.Write a function that returns the roots of a quadratic equation in a list. For example, (roots 1 5 6) might return ‘(-2 - 3).

Boolean Values t = any non-empty list nil = ‘() = ()

Equality Predicates =(= 3 4) eq(eq ‘(1 2) ‘(1 2)) (setf a ‘(1 2)) (eq a a) equal(equal ‘(1 2) ‘(1 2))

member Predicate (member '(1 2) '((1 1)(1 2)(1 3))) NIL > (member '(1 2) '((1 1)(1 2)(1 3)) :test #'equal) ((1 2) (1 3))

Other Predicates listp atom numberp symbolp null endp >, =, <=

Boolean Operators and or not

if statement (if (> 2 3) 'bigger) NIL > (if (> 2 3) 'bigger 'not-bigger) NOT-BIGGER

cond statement (cond (test1 statement 1 … statement n) (test2 statement 1 … statement m) … (testk statement 1.. statement p) )

cond statement (cond ((> temperature 30) 'hot) ((> temperature 25) 'warm) (t 'pleasant) )

case statement (case temperature (35 ‘hot) (34 ‘hot) … (otherwise ‘pleasant) )

Questions 1.Write a function called blackjack that receives two card names as inputs. If one card is an ace and the other is a jack, the function should return the message blackjack. For example, (blackjack ‘ace ‘jack) would return ‘blackjack.

Questions 2.Define a function that shows a practical use of a cond statement. 3.Define a function that shows a practical use of a case statement. 4.Define a function that shows a practical use of nested conditional statements.

Underlying Representation ‘(1 2 3) 1 2 3

Underlying Representation ‘(1 (2) 3) 1 3 2

Questions 1.Draw the representation of ‘(1 (2 3 (4)) 5) 2.Draw the representation of ‘(defun add-one (n) (+ n 1)) 3.Depict what happens below (setf list1 ‘(2 3)) (setf list2 ‘(cons 1 list1))

Questions 4.Depict what happens below (setf list1 ‘(1 2)) (setf list2 ‘(3)) (setf list3 (append list1 list2)) 5.Depict what happens below (setf alist ‘(1 2 3)) (setf (second alist) 4)