(defvar passwords ()) (defun get-passwd (id prompt) (let ((val (assoc id passwords))) (cdr (if val val (car (push (cons id (read-passwd prompt)) passwords))))))