Date: Wed, 08 Jan 1997 21:25:44 GMT Server: NCSA/1.4.2 Content-type: text/html
(defun print-negative-numbers (l) (cond ((null l) nil) (T (let ((tmp (car l))) (when (and (numberp tmp) (> 0 tmp)) (format t "~a~%" tmp)) (print-negative-numbers (cdr l))))))
(defun ascending-order-p (l) (cond ((null l) T) (T (ascending-order-p-helper (car l) (cdr l))))) (defun ascending-order-p-helper (prev l) (cond ((null l) T) (T (let ((new-val (car l))) (and (< prev new-val) (ascending-order-p-helper new-val (cdr l)))))))
(defun account-numbers (a-bank) (mapcar #'(lambda (an-acct) (account-number an-acct)) (bank-accounts a-bank)))
(defun find-account (a-bank account-number) (find-if #'(lambda (an-acct) (= (account-number an-acct) account-number)) (bank-accounts a-bank)))
(defun make-interest-payer (a-bank account-number) (let ((the-acct (find-account a-bank account-number))) (cond ((eq nil the-acct) #'(lambda (x) )) (T #'(lambda (interest) (setf (account-balance the-acct) (* (+ 1 interest) (account-balance the-acct))))))))
(defun pay-interest (a-bank amount) (mapc #'(lambda (acct-number) (funcall (make-interest-payer a-bank acct-number) amount)) (account-numbers a-bank)))