Lecture 4: In Class Activity

Solution Key


Problem 1

(defun convert2 (lst)
 (and (listp lst)
      (do* ((len (length lst))
            (arr (make-array len))
            (i 0 (+ i 1))
           )
           ((>= i len) arr)
           (setf (aref arr i) (nth i lst))
      )
 )
)


Problem 2

(defun our-length (x)
 (and (listp x)
      (let ((len (length x)))
       (cond
        ((= len 0) 'Zero)
        ((= len 1) 'One)
        ((= len 2) 'Two)
        ((= len 3) 'Three)
        ((= len 4) 'Four)
        ((= len 5) 'Five)
        (t 'Big)
       )
      )
 )
)


Problem 3

(defun mather (x y &key (mathop #'+))
 (funcall mathop x y)
)

>(mather 5 7)
12

>(mather 5 7 :mathop #'list)
(5 7)


Problem 4

(let ((big-num nil))
 (defun biggest (x)
  (cond
   ((not (numberp x)) big-num)
   ((null big-num) (setf big-num x))
   ((> x big-num) (setf big-num x))
   (t big-num)
  )
 )
)


Back to main page...