Example solutions
;; list -> integer
(defun length (lst)
  (if (endp lst)
       0
       (+ 1 (length (cdr lst)))))
or
;; list -> integer -> integer
(defun length-tail (lst n)
  (if (endp lst)
    n
    (length-tail (cdr lst) (+ n 1))))
;; list -> number
(defun length (lst n)
  (length lst 0))

;; list -> list -> list
(defun reverse-tail (x y)
  (if (endp x)
    y
    (reverse-tail (cdr x) (cons (car x) y))))
;; list -> list
(defun reverse (x)
  (reverse-tail x nil))

or
;; list -> list
(defun reverse (lst)
  (if (endp lst)
    nil
      (append (reverse (cdr lst)) (list (car lst)))))

;; list -> number
(defun sum-list (lst)
  (if (endp lst)
    0
    (+ (car lst) (sum-list (cdr lst)))))

or
;; list -> number -> list
(defun sum-list-tail (lst n)
  (if (endp lst)
    n
    (sum-list-tail (cdr lst) (+ n (car lst)))))
;; list -> number
(defun sum-list (lst)
  (sum-list-tail lst 0))

;; list -> list -> integer -> list
(defun rotate-tail (x y n)
  (if (zp n)
    (append x (reverse y))
    (rotate-tail (cdr x) (cons (car x) y) (- n 1))))
;; list -> number -> list
(defun rotate (lst n)
  (cond ((< n 0) (rotate lst (+ (length lst) n)))
        ((zp n) lst)
        (t (rotate-tail lst nil (mod n (length lst))))))

or
;; list -> integer -> list
(defun first-n (lst n)
  (if (or (endp lst) (<= n 0))
    nil
    (cons (car lst) (first-n (cdr lst) (- n 1)))))
;; list -> integer -> list
(defun nth-cdr (lst n)
  (if (or (endp lst) (<= n 0))
    lst
    (nth-cdr (cdr lst) (- n 1))))
;; list -> integer -> list
(defun rotate (lst n)
  (append (nth-cdr lst (- (length lst) n)) (first-n lst n)))

or
;; list -> integer -> list
(defun rotate (lst n)
  (if (or (zp n) (< n 0))
    lst
    (rotate (append (cdr lst) (list (car lst))) (- n 1))))