Presentation is loading. Please wait.

Presentation is loading. Please wait.

Common Lisp! John Paxton Montana State University Summer 2003.

Similar presentations


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

1 Common Lisp! John Paxton Montana State University Summer 2003

2 Montana Facts The Plains Indians began using buffalo jumps over 2000 years ago.

3 Array Declarations > (setf numbers (make-array '(4))) #(NIL NIL NIL NIL) > (setf numbers (make-array '(4) :initial-element 0)) #(0 0 0 0)

4 Array Declarations > (setf numbers (make-array '(4) :initial-contents '(1 2 3 4))) #(1 2 3 4) > (setf numbers (make-array '(2 3))) #2A((NIL NIL NIL) (NIL NIL NIL))

5 Array Access > (setf (aref numbers 0 0) 3) 3 > (setf (aref numbers 2 0) 3) *** - SYSTEM::STORE: subscripts (2 0) for #2A((3 NIL NIL) (NIL NIL NIL)) are out of range

6 Array Size Determination > (array-dimensions numbers) (2 3) > (array-dimension numbers 0) 2 > (array-dimension numbers 1) 3

7 Random Numbers > (random 10) ;; 0 – 9, integer 3 > (random 10.0) ;; [0.0, 10.0], real 4.7472386

8 Formatted Output > (format t “pronto") pronto > (format t "Senor ~% Lopez") Senor Lopez

9 Formatted Output > (format t "~a + ~a" 1 2) 1 + 2

10 Questions 1.Write a function that receives a 1-D integer array of size 5 and returns the value of the smallest integer contained in the array. 2.Declare a 3 by 5 matrix named numbers that initially contains all 7s.

11 Questions 3.Write a function called print-matrix that prints out the contents of the matrix that is passed in. Use the format statement. 4.Write a function called fill-matrix that gives each slot within the passed in matrix a random integer value between 0 and 10 inclusive.

12 File I/O (defun read-file ( file-name ) (with-open-file (data-file file-name :direction :input) (do ((item (read data-file nil) (read data-file nil))) ((not item) 'done) (format t "~a ~%" item) )))

13 File I/O sample.dat file contents 1 2 3 4

14 File I/O > (read-file "sample.dat") 1 2 3 4 DONE

15 Question Write a function that finds and prints all permutations of a list. For example, (permute ‘(1 2 3)) could print 1 2 3, 1 3 2, 2 1 3, 2 3 1, 3 1 2, 3 2 1

16 permute (defun permute (alist &optional (so-far nil)) (cond ((null alist) (format t "~a~%" so-far)) (t (dolist (item alist) (permute (remove item alist) (cons item so-far)) ))))

17 permute > (permute '(1 2 3)) (3 2 1) (2 3 1) (3 1 2) (1 3 2) (2 1 3) (1 2 3)


Download ppt "Common Lisp! John Paxton Montana State University Summer 2003."

Similar presentations


Ads by Google