; returns n by n matrix with d on diagonal and b elsewhere. (lambda (n d b) (let ((y (let r ((k n)) (if (= k 0) '() (cons b (r (- k 1))))))) (let M ((m 0)(y y)) (if (= m n) '() (cons (let r ((k m)) (if (= k 0) (cons d (cdr y)) (cons b (r (- k 1))))) (M (+ m 1)(cdr y)))))))