While Loop
(while condition sequence of expressions)
Examples
(defun count_div (x)
  (let ((count 0) (i 1))
    (while (<= i x)
       (if (eq (% x i) 0)
          (setq count (1+ count)))
       (setq i (+ 1 i)))
    count))
 (count_div 12)  ; => 6
(defun last (L)
  (let ((M L))
    (while (and M (cdr M))
      (setq M (cdr M)))
    (print L)
    (if M (car M) nil)))
(last '(1 2 3 4)) ;-> 4
(last ())         ;-> nil
(last '(1))       ;-> (1)
Simplified version of last considering that both car and cdr return nil when the list is empty:
(defun last (L)
  (let ((M L))
    (while (cdr M)
      (setq M (cdr M)))
    (car M)))
(last '(1 2 3 4)) ;-> 4
(last ())         ;-> nil
(last '(1))       ;-> 1
Function Parameters
All function parameters are value parameters in Lisp:
(defvar LL '(1 2 3 4))
(defun last (L)
  (while (and L (cdr L))
    (setq L (cdr L)))
  (car L))
(last LL)  ;=> 4
LL         ;=> (1 2 3 4)
(defun plus (x)
  (setq x (+ 1 x)))
(setq n 3) ;=> 3
(plus n)   ;=> 4
n          ;=> 3
Associative Lists
Mutators
List Mutators
(setq L '(1 2 3)) (setcar (cdr L) 4) ;=> 4 L ;=> (1 4 3) (setcdr (cdr L) 5) ;=> L - (1 4 . 5)
(setcdr (assq 'rose flowers) 'pink) => flowers - ((rose . pink) (lily . white) ...)
Mutator Function
(defun set3rd (L val)
  (let ((M L))
    (setq M (cdr M))
    (setq M (cdr M))
    (setcar M val)
    L))
(setq L '(3 5 9 1 2))  ;=>  (3 5 9 1 2)
(set3rd L 10)          ;=>  (3 5 10 1 2)
L                      ;=>  (3 5 10 1 2)
Complex Conditional
(cond (c1 exp1) (c2 exp2)... )
Examples
(defun last (L)
  (cond ((not L) nil)
        ((not (cdr L)) (car L))
        (t (last (cdr L)))))
(defun max3 (n1 n2 n3)
  (cond
   ((and (>= n1 n2) (>= n1 n3)) n1)
   ((and (>= n2 n1) (>= n2 n3)) n2)
   ((and (>= n3 n1) (>= n3 n2)) n3)))