;;             1
;;           1   1
;;         1   2   1
;;       1   3   3   1
;;     1   4   6   4   1
;;   1   5   10  10  5   1
;; 1   6  15   20  15  6   1
;; 
;; Det ligner at:
;; pascaltal(n,1) = 1
;; pascaltal(n,n) = 1
;; pascaltal(r,s) = (r-1,s-1) + (r-1,s)

(defun pascaltal (r s)
   "Calculates the number for row r and column s"
   (if (or (= s 1)
           (= s r))
       1
       (+ (pascaltal (- r 1) (- s 1))
          (pascaltal (- r 1) s))))

(defun pascaltri (h)
   "Print a pascal-triangle of height h"
   (dotimes (r h)
      (setq rr (+ r 1))
      (setq l '())
      (dotimes (s rr)
        (setq ss (+ s 1))
        (push (pascaltal rr ss) l))
      (print l)))

(pascaltri 8)

(1)

(1 1)

(1 2 1)

(1 3 3 1)

(1 4 6 4 1)

(1 5 10 10 5 1)

(1 6 15 20 15 6 1)

(1 7 21 35 35 21 7 1)
nil